/* * 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 kinesis-2013-12-02.normal.json service model. */ using System; using System.Runtime.ExceptionServices; using System.Threading; using System.Threading.Tasks; using System.Collections.Generic; using System.Net; using Amazon.Kinesis.Model; using Amazon.Kinesis.Model.Internal.MarshallTransformations; using Amazon.Kinesis.Internal; using Amazon.Runtime; using Amazon.Runtime.Internal; using Amazon.Runtime.Internal.Auth; using Amazon.Runtime.Internal.Transform; namespace Amazon.Kinesis { /// /// Implementation for accessing Kinesis /// /// Amazon Kinesis Data Streams Service API Reference /// /// Amazon Kinesis Data Streams is a managed service that scales elastically for real-time /// processing of streaming big data. /// /// public partial class AmazonKinesisClient : AmazonServiceClient, IAmazonKinesis { private static IServiceMetadata serviceMetadata = new AmazonKinesisMetadata(); #region Constructors /// /// Constructs AmazonKinesisClient with the credentials loaded from the application's /// default configuration, and if unsuccessful from the Instance Profile service on an EC2 instance. /// /// Example App.config with credentials set. /// /// <?xml version="1.0" encoding="utf-8" ?> /// <configuration> /// <appSettings> /// <add key="AWSProfileName" value="AWS Default"/> /// </appSettings> /// </configuration> /// /// /// public AmazonKinesisClient() : base(FallbackCredentialsFactory.GetCredentials(), new AmazonKinesisConfig()) { } /// /// Constructs AmazonKinesisClient with the credentials loaded from the application's /// default configuration, and if unsuccessful from the Instance Profile service on an EC2 instance. /// /// Example App.config with credentials set. /// /// <?xml version="1.0" encoding="utf-8" ?> /// <configuration> /// <appSettings> /// <add key="AWSProfileName" value="AWS Default"/> /// </appSettings> /// </configuration> /// /// /// /// The region to connect. public AmazonKinesisClient(RegionEndpoint region) : base(FallbackCredentialsFactory.GetCredentials(), new AmazonKinesisConfig{RegionEndpoint = region}) { } /// /// Constructs AmazonKinesisClient with the credentials loaded from the application's /// default configuration, and if unsuccessful from the Instance Profile service on an EC2 instance. /// /// Example App.config with credentials set. /// /// <?xml version="1.0" encoding="utf-8" ?> /// <configuration> /// <appSettings> /// <add key="AWSProfileName" value="AWS Default"/> /// </appSettings> /// </configuration> /// /// /// /// The AmazonKinesisClient Configuration Object public AmazonKinesisClient(AmazonKinesisConfig config) : base(FallbackCredentialsFactory.GetCredentials(config), config){} /// /// Constructs AmazonKinesisClient with AWS Credentials /// /// AWS Credentials public AmazonKinesisClient(AWSCredentials credentials) : this(credentials, new AmazonKinesisConfig()) { } /// /// Constructs AmazonKinesisClient with AWS Credentials /// /// AWS Credentials /// The region to connect. public AmazonKinesisClient(AWSCredentials credentials, RegionEndpoint region) : this(credentials, new AmazonKinesisConfig{RegionEndpoint = region}) { } /// /// Constructs AmazonKinesisClient with AWS Credentials and an /// AmazonKinesisClient Configuration object. /// /// AWS Credentials /// The AmazonKinesisClient Configuration Object public AmazonKinesisClient(AWSCredentials credentials, AmazonKinesisConfig clientConfig) : base(credentials, clientConfig) { } /// /// Constructs AmazonKinesisClient with AWS Access Key ID and AWS Secret Key /// /// AWS Access Key ID /// AWS Secret Access Key public AmazonKinesisClient(string awsAccessKeyId, string awsSecretAccessKey) : this(awsAccessKeyId, awsSecretAccessKey, new AmazonKinesisConfig()) { } /// /// Constructs AmazonKinesisClient with AWS Access Key ID and AWS Secret Key /// /// AWS Access Key ID /// AWS Secret Access Key /// The region to connect. public AmazonKinesisClient(string awsAccessKeyId, string awsSecretAccessKey, RegionEndpoint region) : this(awsAccessKeyId, awsSecretAccessKey, new AmazonKinesisConfig() {RegionEndpoint=region}) { } /// /// Constructs AmazonKinesisClient with AWS Access Key ID, AWS Secret Key and an /// AmazonKinesisClient Configuration object. /// /// AWS Access Key ID /// AWS Secret Access Key /// The AmazonKinesisClient Configuration Object public AmazonKinesisClient(string awsAccessKeyId, string awsSecretAccessKey, AmazonKinesisConfig clientConfig) : base(awsAccessKeyId, awsSecretAccessKey, clientConfig) { } /// /// Constructs AmazonKinesisClient with AWS Access Key ID and AWS Secret Key /// /// AWS Access Key ID /// AWS Secret Access Key /// AWS Session Token public AmazonKinesisClient(string awsAccessKeyId, string awsSecretAccessKey, string awsSessionToken) : this(awsAccessKeyId, awsSecretAccessKey, awsSessionToken, new AmazonKinesisConfig()) { } /// /// Constructs AmazonKinesisClient with AWS Access Key ID and AWS Secret Key /// /// AWS Access Key ID /// AWS Secret Access Key /// AWS Session Token /// The region to connect. public AmazonKinesisClient(string awsAccessKeyId, string awsSecretAccessKey, string awsSessionToken, RegionEndpoint region) : this(awsAccessKeyId, awsSecretAccessKey, awsSessionToken, new AmazonKinesisConfig{RegionEndpoint = region}) { } /// /// Constructs AmazonKinesisClient with AWS Access Key ID, AWS Secret Key and an /// AmazonKinesisClient Configuration object. /// /// AWS Access Key ID /// AWS Secret Access Key /// AWS Session Token /// The AmazonKinesisClient Configuration Object public AmazonKinesisClient(string awsAccessKeyId, string awsSecretAccessKey, string awsSessionToken, AmazonKinesisConfig clientConfig) : base(awsAccessKeyId, awsSecretAccessKey, awsSessionToken, clientConfig) { } #endregion #if AWS_ASYNC_ENUMERABLES_API private IKinesisPaginatorFactory _paginators; /// /// Paginators for the service /// public IKinesisPaginatorFactory Paginators { get { if (this._paginators == null) { this._paginators = new KinesisPaginatorFactory(this); } return this._paginators; } } #endif #region Overrides /// /// Creates the signer for the service. /// protected override AbstractAWSSigner CreateSigner() { return new AWS4Signer(); } /// /// Customizes the runtime pipeline. /// /// Runtime pipeline for the current client. protected override void CustomizeRuntimePipeline(RuntimePipeline pipeline) { pipeline.RemoveHandler(); pipeline.AddHandlerAfter(new AmazonKinesisEndpointResolver()); } /// /// Capture metadata for the service. /// protected override IServiceMetadata ServiceMetadata { get { return serviceMetadata; } } #endregion #region Dispose /// /// Disposes the service client. /// protected override void Dispose(bool disposing) { base.Dispose(disposing); } #endregion #region AddTagsToStream internal virtual AddTagsToStreamResponse AddTagsToStream(AddTagsToStreamRequest request) { var options = new InvokeOptions(); options.RequestMarshaller = AddTagsToStreamRequestMarshaller.Instance; options.ResponseUnmarshaller = AddTagsToStreamResponseUnmarshaller.Instance; return Invoke(request, options); } /// /// Adds or updates tags for the specified Kinesis data stream. You can assign up to 50 /// tags to a data stream. /// /// /// /// When invoking this API, it is recommended you use the StreamARN input /// parameter rather than the StreamName input parameter. /// /// /// /// If tags have already been assigned to the stream, AddTagsToStream overwrites /// any existing tags that correspond to the specified tag keys. /// /// /// /// AddTagsToStream has a limit of five transactions per second per account. /// /// /// Container for the necessary parameters to execute the AddTagsToStream service method. /// /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. /// /// /// The response from the AddTagsToStream service method, as returned by Kinesis. /// /// Specifies that you do not have the permissions required to perform this operation. /// /// /// A specified parameter exceeds its restrictions, is not supported, or can't be used. /// For more information, see the returned message. /// /// /// The requested resource exceeds the maximum number allowed, or the number of concurrent /// stream requests exceeds the maximum number allowed. /// /// /// The resource is not available for this operation. For successful operation, the resource /// must be in the ACTIVE state. /// /// /// The requested resource could not be found. The stream might not be specified correctly. /// /// REST API Reference for AddTagsToStream Operation public virtual Task AddTagsToStreamAsync(AddTagsToStreamRequest request, System.Threading.CancellationToken cancellationToken = default(CancellationToken)) { var options = new InvokeOptions(); options.RequestMarshaller = AddTagsToStreamRequestMarshaller.Instance; options.ResponseUnmarshaller = AddTagsToStreamResponseUnmarshaller.Instance; return InvokeAsync(request, options, cancellationToken); } #endregion #region CreateStream internal virtual CreateStreamResponse CreateStream(CreateStreamRequest request) { var options = new InvokeOptions(); options.RequestMarshaller = CreateStreamRequestMarshaller.Instance; options.ResponseUnmarshaller = CreateStreamResponseUnmarshaller.Instance; return Invoke(request, options); } /// /// Creates a Kinesis data stream. A stream captures and transports data records that /// are continuously emitted from different data sources or producers. Scale-out /// within a stream is explicitly supported by means of shards, which are uniquely identified /// groups of data records in a stream. /// /// /// /// You can create your data stream using either on-demand or provisioned capacity mode. /// Data streams with an on-demand mode require no capacity planning and automatically /// scale to handle gigabytes of write and read throughput per minute. With the on-demand /// mode, Kinesis Data Streams automatically manages the shards in order to provide the /// necessary throughput. For the data streams with a provisioned mode, you must specify /// the number of shards for the data stream. Each shard can support reads up to five /// transactions per second, up to a maximum data read total of 2 MiB per second. Each /// shard can support writes up to 1,000 records per second, up to a maximum data write /// total of 1 MiB per second. If the amount of data input increases or decreases, you /// can add or remove shards. /// /// /// /// The stream name identifies the stream. The name is scoped to the Amazon Web Services /// account used by the application. It is also scoped by Amazon Web Services Region. /// That is, two streams in two different accounts can have the same name, and two streams /// in the same account, but in two different Regions, can have the same name. /// /// /// /// CreateStream is an asynchronous operation. Upon receiving a CreateStream /// request, Kinesis Data Streams immediately returns and sets the stream status to CREATING. /// After the stream is created, Kinesis Data Streams sets the stream status to ACTIVE. /// You should perform read and write operations only on an ACTIVE stream. /// /// /// /// /// You receive a LimitExceededException when making a CreateStream /// request when you try to do one of the following: /// ///
  • /// /// Have more than five streams in the CREATING state at any point in time. /// ///
  • /// /// Create more shards than are authorized for your account. /// ///
/// /// For the default shard limit for an Amazon Web Services account, see Amazon /// Kinesis Data Streams Limits in the Amazon Kinesis Data Streams Developer Guide. /// To increase this limit, contact /// Amazon Web Services Support. /// /// /// /// You can use DescribeStreamSummary to check the stream status, which is returned /// in StreamStatus. /// /// /// /// CreateStream has a limit of five transactions per second per account. /// ///
/// Container for the necessary parameters to execute the CreateStream service method. /// /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. /// /// /// The response from the CreateStream service method, as returned by Kinesis. /// /// A specified parameter exceeds its restrictions, is not supported, or can't be used. /// For more information, see the returned message. /// /// /// The requested resource exceeds the maximum number allowed, or the number of concurrent /// stream requests exceeds the maximum number allowed. /// /// /// The resource is not available for this operation. For successful operation, the resource /// must be in the ACTIVE state. /// /// REST API Reference for CreateStream Operation public virtual Task CreateStreamAsync(CreateStreamRequest request, System.Threading.CancellationToken cancellationToken = default(CancellationToken)) { var options = new InvokeOptions(); options.RequestMarshaller = CreateStreamRequestMarshaller.Instance; options.ResponseUnmarshaller = CreateStreamResponseUnmarshaller.Instance; return InvokeAsync(request, options, cancellationToken); } #endregion #region DecreaseStreamRetentionPeriod internal virtual DecreaseStreamRetentionPeriodResponse DecreaseStreamRetentionPeriod(DecreaseStreamRetentionPeriodRequest request) { var options = new InvokeOptions(); options.RequestMarshaller = DecreaseStreamRetentionPeriodRequestMarshaller.Instance; options.ResponseUnmarshaller = DecreaseStreamRetentionPeriodResponseUnmarshaller.Instance; return Invoke(request, options); } /// /// Decreases the Kinesis data stream's retention period, which is the length of time /// data records are accessible after they are added to the stream. The minimum value /// of a stream's retention period is 24 hours. /// /// /// /// When invoking this API, it is recommended you use the StreamARN input /// parameter rather than the StreamName input parameter. /// /// /// /// This operation may result in lost data. For example, if the stream's retention period /// is 48 hours and is decreased to 24 hours, any data already in the stream that is older /// than 24 hours is inaccessible. /// /// /// The name of the stream to modify. /// The new retention period of the stream, in hours. Must be less than the current retention period. /// /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. /// /// /// The response from the DecreaseStreamRetentionPeriod service method, as returned by Kinesis. /// /// Specifies that you do not have the permissions required to perform this operation. /// /// /// A specified parameter exceeds its restrictions, is not supported, or can't be used. /// For more information, see the returned message. /// /// /// The requested resource exceeds the maximum number allowed, or the number of concurrent /// stream requests exceeds the maximum number allowed. /// /// /// The resource is not available for this operation. For successful operation, the resource /// must be in the ACTIVE state. /// /// /// The requested resource could not be found. The stream might not be specified correctly. /// /// REST API Reference for DecreaseStreamRetentionPeriod Operation public virtual Task DecreaseStreamRetentionPeriodAsync(string streamName, int retentionPeriodHours, System.Threading.CancellationToken cancellationToken = default(CancellationToken)) { var request = new DecreaseStreamRetentionPeriodRequest(); request.StreamName = streamName; request.RetentionPeriodHours = retentionPeriodHours; return DecreaseStreamRetentionPeriodAsync(request, cancellationToken); } /// /// Decreases the Kinesis data stream's retention period, which is the length of time /// data records are accessible after they are added to the stream. The minimum value /// of a stream's retention period is 24 hours. /// /// /// /// When invoking this API, it is recommended you use the StreamARN input /// parameter rather than the StreamName input parameter. /// /// /// /// This operation may result in lost data. For example, if the stream's retention period /// is 48 hours and is decreased to 24 hours, any data already in the stream that is older /// than 24 hours is inaccessible. /// /// /// Container for the necessary parameters to execute the DecreaseStreamRetentionPeriod service method. /// /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. /// /// /// The response from the DecreaseStreamRetentionPeriod service method, as returned by Kinesis. /// /// Specifies that you do not have the permissions required to perform this operation. /// /// /// A specified parameter exceeds its restrictions, is not supported, or can't be used. /// For more information, see the returned message. /// /// /// The requested resource exceeds the maximum number allowed, or the number of concurrent /// stream requests exceeds the maximum number allowed. /// /// /// The resource is not available for this operation. For successful operation, the resource /// must be in the ACTIVE state. /// /// /// The requested resource could not be found. The stream might not be specified correctly. /// /// REST API Reference for DecreaseStreamRetentionPeriod Operation public virtual Task DecreaseStreamRetentionPeriodAsync(DecreaseStreamRetentionPeriodRequest request, System.Threading.CancellationToken cancellationToken = default(CancellationToken)) { var options = new InvokeOptions(); options.RequestMarshaller = DecreaseStreamRetentionPeriodRequestMarshaller.Instance; options.ResponseUnmarshaller = DecreaseStreamRetentionPeriodResponseUnmarshaller.Instance; return InvokeAsync(request, options, cancellationToken); } #endregion #region DeleteStream internal virtual DeleteStreamResponse DeleteStream(DeleteStreamRequest request) { var options = new InvokeOptions(); options.RequestMarshaller = DeleteStreamRequestMarshaller.Instance; options.ResponseUnmarshaller = DeleteStreamResponseUnmarshaller.Instance; return Invoke(request, options); } /// /// Deletes a Kinesis data stream and all its shards and data. You must shut down any /// applications that are operating on the stream before you delete the stream. If an /// application attempts to operate on a deleted stream, it receives the exception ResourceNotFoundException. /// /// /// /// When invoking this API, it is recommended you use the StreamARN input /// parameter rather than the StreamName input parameter. /// /// /// /// If the stream is in the ACTIVE state, you can delete it. After a DeleteStream /// request, the specified stream is in the DELETING state until Kinesis /// Data Streams completes the deletion. /// /// /// /// Note: Kinesis Data Streams might continue to accept data read and write operations, /// such as PutRecord, PutRecords, and GetRecords, on a stream in /// the DELETING state until the stream deletion is complete. /// /// /// /// When you delete a stream, any shards in that stream are also deleted, and any tags /// are dissociated from the stream. /// /// /// /// You can use the DescribeStreamSummary operation to check the state of the stream, /// which is returned in StreamStatus. /// /// /// /// DeleteStream has a limit of five transactions per second per account. /// /// /// Container for the necessary parameters to execute the DeleteStream service method. /// /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. /// /// /// The response from the DeleteStream service method, as returned by Kinesis. /// /// Specifies that you do not have the permissions required to perform this operation. /// /// /// A specified parameter exceeds its restrictions, is not supported, or can't be used. /// For more information, see the returned message. /// /// /// The requested resource exceeds the maximum number allowed, or the number of concurrent /// stream requests exceeds the maximum number allowed. /// /// /// The resource is not available for this operation. For successful operation, the resource /// must be in the ACTIVE state. /// /// /// The requested resource could not be found. The stream might not be specified correctly. /// /// REST API Reference for DeleteStream Operation public virtual Task DeleteStreamAsync(DeleteStreamRequest request, System.Threading.CancellationToken cancellationToken = default(CancellationToken)) { var options = new InvokeOptions(); options.RequestMarshaller = DeleteStreamRequestMarshaller.Instance; options.ResponseUnmarshaller = DeleteStreamResponseUnmarshaller.Instance; return InvokeAsync(request, options, cancellationToken); } #endregion #region DeregisterStreamConsumer internal virtual DeregisterStreamConsumerResponse DeregisterStreamConsumer(DeregisterStreamConsumerRequest request) { var options = new InvokeOptions(); options.RequestMarshaller = DeregisterStreamConsumerRequestMarshaller.Instance; options.ResponseUnmarshaller = DeregisterStreamConsumerResponseUnmarshaller.Instance; return Invoke(request, options); } /// /// To deregister a consumer, provide its ARN. Alternatively, you can provide the ARN /// of the data stream and the name you gave the consumer when you registered it. You /// may also provide all three parameters, as long as they don't conflict with each other. /// If you don't know the name or ARN of the consumer that you want to deregister, you /// can use the ListStreamConsumers operation to get a list of the descriptions /// of all the consumers that are currently registered with a given data stream. The description /// of a consumer contains its name and ARN. /// /// /// /// This operation has a limit of five transactions per second per stream. /// /// /// Container for the necessary parameters to execute the DeregisterStreamConsumer service method. /// /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. /// /// /// The response from the DeregisterStreamConsumer service method, as returned by Kinesis. /// /// A specified parameter exceeds its restrictions, is not supported, or can't be used. /// For more information, see the returned message. /// /// /// The requested resource exceeds the maximum number allowed, or the number of concurrent /// stream requests exceeds the maximum number allowed. /// /// /// The requested resource could not be found. The stream might not be specified correctly. /// /// REST API Reference for DeregisterStreamConsumer Operation public virtual Task DeregisterStreamConsumerAsync(DeregisterStreamConsumerRequest request, System.Threading.CancellationToken cancellationToken = default(CancellationToken)) { var options = new InvokeOptions(); options.RequestMarshaller = DeregisterStreamConsumerRequestMarshaller.Instance; options.ResponseUnmarshaller = DeregisterStreamConsumerResponseUnmarshaller.Instance; return InvokeAsync(request, options, cancellationToken); } #endregion #region DescribeLimits internal virtual DescribeLimitsResponse DescribeLimits(DescribeLimitsRequest request) { var options = new InvokeOptions(); options.RequestMarshaller = DescribeLimitsRequestMarshaller.Instance; options.ResponseUnmarshaller = DescribeLimitsResponseUnmarshaller.Instance; return Invoke(request, options); } /// /// Describes the shard limits and usage for the account. /// /// /// /// If you update your account limits, the old limits might be returned for a few minutes. /// /// /// /// This operation has a limit of one transaction per second per account. /// /// /// Container for the necessary parameters to execute the DescribeLimits service method. /// /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. /// /// /// The response from the DescribeLimits service method, as returned by Kinesis. /// /// The requested resource exceeds the maximum number allowed, or the number of concurrent /// stream requests exceeds the maximum number allowed. /// /// REST API Reference for DescribeLimits Operation public virtual Task DescribeLimitsAsync(DescribeLimitsRequest request, System.Threading.CancellationToken cancellationToken = default(CancellationToken)) { var options = new InvokeOptions(); options.RequestMarshaller = DescribeLimitsRequestMarshaller.Instance; options.ResponseUnmarshaller = DescribeLimitsResponseUnmarshaller.Instance; return InvokeAsync(request, options, cancellationToken); } #endregion #region DescribeStream internal virtual DescribeStreamResponse DescribeStream(DescribeStreamRequest request) { var options = new InvokeOptions(); options.RequestMarshaller = DescribeStreamRequestMarshaller.Instance; options.ResponseUnmarshaller = DescribeStreamResponseUnmarshaller.Instance; return Invoke(request, options); } /// /// Describes the specified Kinesis data stream. /// /// /// /// This API has been revised. It's highly recommended that you use the DescribeStreamSummary /// API to get a summarized description of the specified Kinesis data stream and the ListShards /// API to list the shards in a specified data stream and obtain information about each /// shard. /// /// /// /// When invoking this API, it is recommended you use the StreamARN input /// parameter rather than the StreamName input parameter. /// /// /// /// The information returned includes the stream name, Amazon Resource Name (ARN), creation /// time, enhanced metric configuration, and shard map. The shard map is an array of shard /// objects. For each shard object, there is the hash key and sequence number ranges that /// the shard spans, and the IDs of any earlier shards that played in a role in creating /// the shard. Every record ingested in the stream is identified by a sequence number, /// which is assigned when the record is put into the stream. /// /// /// /// You can limit the number of shards returned by each call. For more information, see /// Retrieving /// Shards from a Stream in the Amazon Kinesis Data Streams Developer Guide. /// /// /// /// There are no guarantees about the chronological order shards returned. To process /// shards in chronological order, use the ID of the parent shard to track the lineage /// to the oldest shard. /// /// /// /// This operation has a limit of 10 transactions per second per account. /// /// /// Container for the necessary parameters to execute the DescribeStream service method. /// /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. /// /// /// The response from the DescribeStream service method, as returned by Kinesis. /// /// Specifies that you do not have the permissions required to perform this operation. /// /// /// A specified parameter exceeds its restrictions, is not supported, or can't be used. /// For more information, see the returned message. /// /// /// The requested resource exceeds the maximum number allowed, or the number of concurrent /// stream requests exceeds the maximum number allowed. /// /// /// The requested resource could not be found. The stream might not be specified correctly. /// /// REST API Reference for DescribeStream Operation public virtual Task DescribeStreamAsync(DescribeStreamRequest request, System.Threading.CancellationToken cancellationToken = default(CancellationToken)) { var options = new InvokeOptions(); options.RequestMarshaller = DescribeStreamRequestMarshaller.Instance; options.ResponseUnmarshaller = DescribeStreamResponseUnmarshaller.Instance; return InvokeAsync(request, options, cancellationToken); } #endregion #region DescribeStreamConsumer internal virtual DescribeStreamConsumerResponse DescribeStreamConsumer(DescribeStreamConsumerRequest request) { var options = new InvokeOptions(); options.RequestMarshaller = DescribeStreamConsumerRequestMarshaller.Instance; options.ResponseUnmarshaller = DescribeStreamConsumerResponseUnmarshaller.Instance; return Invoke(request, options); } /// /// To get the description of a registered consumer, provide the ARN of the consumer. /// Alternatively, you can provide the ARN of the data stream and the name you gave the /// consumer when you registered it. You may also provide all three parameters, as long /// as they don't conflict with each other. If you don't know the name or ARN of the consumer /// that you want to describe, you can use the ListStreamConsumers operation to /// get a list of the descriptions of all the consumers that are currently registered /// with a given data stream. /// /// /// /// This operation has a limit of 20 transactions per second per stream. /// /// /// Container for the necessary parameters to execute the DescribeStreamConsumer service method. /// /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. /// /// /// The response from the DescribeStreamConsumer service method, as returned by Kinesis. /// /// A specified parameter exceeds its restrictions, is not supported, or can't be used. /// For more information, see the returned message. /// /// /// The requested resource exceeds the maximum number allowed, or the number of concurrent /// stream requests exceeds the maximum number allowed. /// /// /// The requested resource could not be found. The stream might not be specified correctly. /// /// REST API Reference for DescribeStreamConsumer Operation public virtual Task DescribeStreamConsumerAsync(DescribeStreamConsumerRequest request, System.Threading.CancellationToken cancellationToken = default(CancellationToken)) { var options = new InvokeOptions(); options.RequestMarshaller = DescribeStreamConsumerRequestMarshaller.Instance; options.ResponseUnmarshaller = DescribeStreamConsumerResponseUnmarshaller.Instance; return InvokeAsync(request, options, cancellationToken); } #endregion #region DescribeStreamSummary internal virtual DescribeStreamSummaryResponse DescribeStreamSummary(DescribeStreamSummaryRequest request) { var options = new InvokeOptions(); options.RequestMarshaller = DescribeStreamSummaryRequestMarshaller.Instance; options.ResponseUnmarshaller = DescribeStreamSummaryResponseUnmarshaller.Instance; return Invoke(request, options); } /// /// Provides a summarized description of the specified Kinesis data stream without the /// shard list. /// /// /// /// When invoking this API, it is recommended you use the StreamARN input /// parameter rather than the StreamName input parameter. /// /// /// /// The information returned includes the stream name, Amazon Resource Name (ARN), status, /// record retention period, approximate creation time, monitoring, encryption details, /// and open shard count. /// /// /// /// DescribeStreamSummary has a limit of 20 transactions per second per account. /// /// /// Container for the necessary parameters to execute the DescribeStreamSummary service method. /// /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. /// /// /// The response from the DescribeStreamSummary service method, as returned by Kinesis. /// /// Specifies that you do not have the permissions required to perform this operation. /// /// /// A specified parameter exceeds its restrictions, is not supported, or can't be used. /// For more information, see the returned message. /// /// /// The requested resource exceeds the maximum number allowed, or the number of concurrent /// stream requests exceeds the maximum number allowed. /// /// /// The requested resource could not be found. The stream might not be specified correctly. /// /// REST API Reference for DescribeStreamSummary Operation public virtual Task DescribeStreamSummaryAsync(DescribeStreamSummaryRequest request, System.Threading.CancellationToken cancellationToken = default(CancellationToken)) { var options = new InvokeOptions(); options.RequestMarshaller = DescribeStreamSummaryRequestMarshaller.Instance; options.ResponseUnmarshaller = DescribeStreamSummaryResponseUnmarshaller.Instance; return InvokeAsync(request, options, cancellationToken); } #endregion #region DisableEnhancedMonitoring internal virtual DisableEnhancedMonitoringResponse DisableEnhancedMonitoring(DisableEnhancedMonitoringRequest request) { var options = new InvokeOptions(); options.RequestMarshaller = DisableEnhancedMonitoringRequestMarshaller.Instance; options.ResponseUnmarshaller = DisableEnhancedMonitoringResponseUnmarshaller.Instance; return Invoke(request, options); } /// /// Disables enhanced monitoring. /// /// /// /// When invoking this API, it is recommended you use the StreamARN input /// parameter rather than the StreamName input parameter. /// /// /// /// Container for the necessary parameters to execute the DisableEnhancedMonitoring service method. /// /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. /// /// /// The response from the DisableEnhancedMonitoring service method, as returned by Kinesis. /// /// Specifies that you do not have the permissions required to perform this operation. /// /// /// A specified parameter exceeds its restrictions, is not supported, or can't be used. /// For more information, see the returned message. /// /// /// The requested resource exceeds the maximum number allowed, or the number of concurrent /// stream requests exceeds the maximum number allowed. /// /// /// The resource is not available for this operation. For successful operation, the resource /// must be in the ACTIVE state. /// /// /// The requested resource could not be found. The stream might not be specified correctly. /// /// REST API Reference for DisableEnhancedMonitoring Operation public virtual Task DisableEnhancedMonitoringAsync(DisableEnhancedMonitoringRequest request, System.Threading.CancellationToken cancellationToken = default(CancellationToken)) { var options = new InvokeOptions(); options.RequestMarshaller = DisableEnhancedMonitoringRequestMarshaller.Instance; options.ResponseUnmarshaller = DisableEnhancedMonitoringResponseUnmarshaller.Instance; return InvokeAsync(request, options, cancellationToken); } #endregion #region EnableEnhancedMonitoring internal virtual EnableEnhancedMonitoringResponse EnableEnhancedMonitoring(EnableEnhancedMonitoringRequest request) { var options = new InvokeOptions(); options.RequestMarshaller = EnableEnhancedMonitoringRequestMarshaller.Instance; options.ResponseUnmarshaller = EnableEnhancedMonitoringResponseUnmarshaller.Instance; return Invoke(request, options); } /// /// Enables enhanced Kinesis data stream monitoring for shard-level metrics. /// /// /// /// When invoking this API, it is recommended you use the StreamARN input /// parameter rather than the StreamName input parameter. /// /// /// /// Container for the necessary parameters to execute the EnableEnhancedMonitoring service method. /// /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. /// /// /// The response from the EnableEnhancedMonitoring service method, as returned by Kinesis. /// /// Specifies that you do not have the permissions required to perform this operation. /// /// /// A specified parameter exceeds its restrictions, is not supported, or can't be used. /// For more information, see the returned message. /// /// /// The requested resource exceeds the maximum number allowed, or the number of concurrent /// stream requests exceeds the maximum number allowed. /// /// /// The resource is not available for this operation. For successful operation, the resource /// must be in the ACTIVE state. /// /// /// The requested resource could not be found. The stream might not be specified correctly. /// /// REST API Reference for EnableEnhancedMonitoring Operation public virtual Task EnableEnhancedMonitoringAsync(EnableEnhancedMonitoringRequest request, System.Threading.CancellationToken cancellationToken = default(CancellationToken)) { var options = new InvokeOptions(); options.RequestMarshaller = EnableEnhancedMonitoringRequestMarshaller.Instance; options.ResponseUnmarshaller = EnableEnhancedMonitoringResponseUnmarshaller.Instance; return InvokeAsync(request, options, cancellationToken); } #endregion #region GetRecords internal virtual GetRecordsResponse GetRecords(GetRecordsRequest request) { var options = new InvokeOptions(); options.RequestMarshaller = GetRecordsRequestMarshaller.Instance; options.ResponseUnmarshaller = GetRecordsResponseUnmarshaller.Instance; return Invoke(request, options); } /// /// Gets data records from a Kinesis data stream's shard. /// /// /// /// When invoking this API, it is recommended you use the StreamARN input /// parameter in addition to the ShardIterator parameter. /// /// /// /// Specify a shard iterator using the ShardIterator parameter. The shard /// iterator specifies the position in the shard from which you want to start reading /// data records sequentially. If there are no records available in the portion of the /// shard that the iterator points to, GetRecords returns an empty list. It might /// take multiple calls to get to a portion of the shard that contains records. /// /// /// /// You can scale by provisioning multiple shards per stream while considering service /// limits (for more information, see Amazon /// Kinesis Data Streams Limits in the Amazon Kinesis Data Streams Developer Guide). /// Your application should have one thread per shard, each reading continuously from /// its stream. To read from a stream continually, call GetRecords in a loop. Use /// GetShardIterator to get the shard iterator to specify in the first GetRecords /// call. GetRecords returns a new shard iterator in NextShardIterator. /// Specify the shard iterator returned in NextShardIterator in subsequent /// calls to GetRecords. If the shard has been closed, the shard iterator can't /// return more data and GetRecords returns null in NextShardIterator. /// You can terminate the loop when the shard is closed, or when the shard iterator reaches /// the record with the sequence number or other attribute that marks it as the last record /// to process. /// /// /// /// Each data record can be up to 1 MiB in size, and each shard can read up to 2 MiB per /// second. You can ensure that your calls don't exceed the maximum supported size or /// throughput by using the Limit parameter to specify the maximum number /// of records that GetRecords can return. Consider your average record size when /// determining this limit. The maximum number of records that can be returned per call /// is 10,000. /// /// /// /// The size of the data returned by GetRecords varies depending on the utilization /// of the shard. It is recommended that consumer applications retrieve records via the /// GetRecords command using the 5 TPS limit to remain caught up. Retrieving /// records less frequently can lead to consumer applications falling behind. The maximum /// size of data that GetRecords can return is 10 MiB. If a call returns this amount /// of data, subsequent calls made within the next 5 seconds throw ProvisionedThroughputExceededException. /// If there is insufficient provisioned throughput on the stream, subsequent calls made /// within the next 1 second throw ProvisionedThroughputExceededException. /// GetRecords doesn't return any data when it throws an exception. For this reason, /// we recommend that you wait 1 second between calls to GetRecords. However, it's /// possible that the application will get exceptions for longer than 1 second. /// /// /// /// To detect whether the application is falling behind in processing, you can use the /// MillisBehindLatest response attribute. You can also monitor the stream /// using CloudWatch metrics and other mechanisms (see Monitoring /// in the Amazon Kinesis Data Streams Developer Guide). /// /// /// /// Each Amazon Kinesis record includes a value, ApproximateArrivalTimestamp, /// that is set when a stream successfully receives and stores a record. This is commonly /// referred to as a server-side time stamp, whereas a client-side time stamp is set when /// a data producer creates or sends the record to a stream (a data producer is any data /// source putting data records into a stream, for example with PutRecords). The /// time stamp has millisecond precision. There are no guarantees about the time stamp /// accuracy, or that the time stamp is always increasing. For example, records in a shard /// or across a stream might have time stamps that are out of order. /// /// /// /// This operation has a limit of five transactions per second per shard. /// /// /// Container for the necessary parameters to execute the GetRecords service method. /// /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. /// /// /// The response from the GetRecords service method, as returned by Kinesis. /// /// Specifies that you do not have the permissions required to perform this operation. /// /// /// The provided iterator exceeds the maximum age allowed. /// /// /// A specified parameter exceeds its restrictions, is not supported, or can't be used. /// For more information, see the returned message. /// /// /// The ciphertext references a key that doesn't exist or that you don't have access to. /// /// /// The request was rejected because the specified customer master key (CMK) isn't enabled. /// /// /// The request was rejected because the state of the specified resource isn't valid for /// this request. For more information, see How /// Key State Affects Use of a Customer Master Key in the Amazon Web Services Key /// Management Service Developer Guide. /// /// /// The request was rejected because the specified entity or resource can't be found. /// /// /// The Amazon Web Services access key ID needs a subscription for the service. /// /// /// The request was denied due to request throttling. For more information about throttling, /// see Limits /// in the Amazon Web Services Key Management Service Developer Guide. /// /// /// The request rate for the stream is too high, or the requested data is too large for /// the available throughput. Reduce the frequency or size of your requests. For more /// information, see Streams /// Limits in the Amazon Kinesis Data Streams Developer Guide, and Error /// Retries and Exponential Backoff in Amazon Web Services in the Amazon Web Services /// General Reference. /// /// /// The requested resource could not be found. The stream might not be specified correctly. /// /// REST API Reference for GetRecords Operation public virtual Task GetRecordsAsync(GetRecordsRequest request, System.Threading.CancellationToken cancellationToken = default(CancellationToken)) { var options = new InvokeOptions(); options.RequestMarshaller = GetRecordsRequestMarshaller.Instance; options.ResponseUnmarshaller = GetRecordsResponseUnmarshaller.Instance; return InvokeAsync(request, options, cancellationToken); } #endregion #region GetShardIterator internal virtual GetShardIteratorResponse GetShardIterator(GetShardIteratorRequest request) { var options = new InvokeOptions(); options.RequestMarshaller = GetShardIteratorRequestMarshaller.Instance; options.ResponseUnmarshaller = GetShardIteratorResponseUnmarshaller.Instance; return Invoke(request, options); } /// /// Gets an Amazon Kinesis shard iterator. A shard iterator expires 5 minutes after it /// is returned to the requester. /// /// /// /// When invoking this API, it is recommended you use the StreamARN input /// parameter rather than the StreamName input parameter. /// /// /// /// A shard iterator specifies the shard position from which to start reading data records /// sequentially. The position is specified using the sequence number of a data record /// in a shard. A sequence number is the identifier associated with every record ingested /// in the stream, and is assigned when a record is put into the stream. Each stream has /// one or more shards. /// /// /// /// You must specify the shard iterator type. For example, you can set the ShardIteratorType /// parameter to read exactly from the position denoted by a specific sequence number /// by using the AT_SEQUENCE_NUMBER shard iterator type. Alternatively, the /// parameter can read right after the sequence number by using the AFTER_SEQUENCE_NUMBER /// shard iterator type, using sequence numbers returned by earlier calls to PutRecord, /// PutRecords, GetRecords, or DescribeStream. In the request, you /// can specify the shard iterator type AT_TIMESTAMP to read records from /// an arbitrary point in time, TRIM_HORIZON to cause ShardIterator /// to point to the last untrimmed record in the shard in the system (the oldest data /// record in the shard), or LATEST so that you always read the most recent /// data in the shard. /// /// /// /// When you read repeatedly from a stream, use a GetShardIterator request to get /// the first shard iterator for use in your first GetRecords request and for subsequent /// reads use the shard iterator returned by the GetRecords request in NextShardIterator. /// A new shard iterator is returned by every GetRecords request in NextShardIterator, /// which you use in the ShardIterator parameter of the next GetRecords /// request. /// /// /// /// If a GetShardIterator request is made too often, you receive a ProvisionedThroughputExceededException. /// For more information about throughput limits, see GetRecords, and Streams /// Limits in the Amazon Kinesis Data Streams Developer Guide. /// /// /// /// If the shard is closed, GetShardIterator returns a valid iterator for the last /// sequence number of the shard. A shard can be closed as a result of using SplitShard /// or MergeShards. /// /// /// /// GetShardIterator has a limit of five transactions per second per account per /// open shard. /// /// /// Container for the necessary parameters to execute the GetShardIterator service method. /// /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. /// /// /// The response from the GetShardIterator service method, as returned by Kinesis. /// /// Specifies that you do not have the permissions required to perform this operation. /// /// /// A specified parameter exceeds its restrictions, is not supported, or can't be used. /// For more information, see the returned message. /// /// /// The request rate for the stream is too high, or the requested data is too large for /// the available throughput. Reduce the frequency or size of your requests. For more /// information, see Streams /// Limits in the Amazon Kinesis Data Streams Developer Guide, and Error /// Retries and Exponential Backoff in Amazon Web Services in the Amazon Web Services /// General Reference. /// /// /// The requested resource could not be found. The stream might not be specified correctly. /// /// REST API Reference for GetShardIterator Operation public virtual Task GetShardIteratorAsync(GetShardIteratorRequest request, System.Threading.CancellationToken cancellationToken = default(CancellationToken)) { var options = new InvokeOptions(); options.RequestMarshaller = GetShardIteratorRequestMarshaller.Instance; options.ResponseUnmarshaller = GetShardIteratorResponseUnmarshaller.Instance; return InvokeAsync(request, options, cancellationToken); } #endregion #region IncreaseStreamRetentionPeriod internal virtual IncreaseStreamRetentionPeriodResponse IncreaseStreamRetentionPeriod(IncreaseStreamRetentionPeriodRequest request) { var options = new InvokeOptions(); options.RequestMarshaller = IncreaseStreamRetentionPeriodRequestMarshaller.Instance; options.ResponseUnmarshaller = IncreaseStreamRetentionPeriodResponseUnmarshaller.Instance; return Invoke(request, options); } /// /// Increases the Kinesis data stream's retention period, which is the length of time /// data records are accessible after they are added to the stream. The maximum value /// of a stream's retention period is 8760 hours (365 days). /// /// /// /// When invoking this API, it is recommended you use the StreamARN input /// parameter rather than the StreamName input parameter. /// /// /// /// If you choose a longer stream retention period, this operation increases the time /// period during which records that have not yet expired are accessible. However, it /// does not make previous, expired data (older than the stream's previous retention period) /// accessible after the operation has been called. For example, if a stream's retention /// period is set to 24 hours and is increased to 168 hours, any data that is older than /// 24 hours remains inaccessible to consumer applications. /// /// /// The name of the stream to modify. /// The new retention period of the stream, in hours. Must be more than the current retention period. /// /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. /// /// /// The response from the IncreaseStreamRetentionPeriod service method, as returned by Kinesis. /// /// Specifies that you do not have the permissions required to perform this operation. /// /// /// A specified parameter exceeds its restrictions, is not supported, or can't be used. /// For more information, see the returned message. /// /// /// The requested resource exceeds the maximum number allowed, or the number of concurrent /// stream requests exceeds the maximum number allowed. /// /// /// The resource is not available for this operation. For successful operation, the resource /// must be in the ACTIVE state. /// /// /// The requested resource could not be found. The stream might not be specified correctly. /// /// REST API Reference for IncreaseStreamRetentionPeriod Operation public virtual Task IncreaseStreamRetentionPeriodAsync(string streamName, int retentionPeriodHours, System.Threading.CancellationToken cancellationToken = default(CancellationToken)) { var request = new IncreaseStreamRetentionPeriodRequest(); request.StreamName = streamName; request.RetentionPeriodHours = retentionPeriodHours; return IncreaseStreamRetentionPeriodAsync(request, cancellationToken); } /// /// Increases the Kinesis data stream's retention period, which is the length of time /// data records are accessible after they are added to the stream. The maximum value /// of a stream's retention period is 8760 hours (365 days). /// /// /// /// When invoking this API, it is recommended you use the StreamARN input /// parameter rather than the StreamName input parameter. /// /// /// /// If you choose a longer stream retention period, this operation increases the time /// period during which records that have not yet expired are accessible. However, it /// does not make previous, expired data (older than the stream's previous retention period) /// accessible after the operation has been called. For example, if a stream's retention /// period is set to 24 hours and is increased to 168 hours, any data that is older than /// 24 hours remains inaccessible to consumer applications. /// /// /// Container for the necessary parameters to execute the IncreaseStreamRetentionPeriod service method. /// /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. /// /// /// The response from the IncreaseStreamRetentionPeriod service method, as returned by Kinesis. /// /// Specifies that you do not have the permissions required to perform this operation. /// /// /// A specified parameter exceeds its restrictions, is not supported, or can't be used. /// For more information, see the returned message. /// /// /// The requested resource exceeds the maximum number allowed, or the number of concurrent /// stream requests exceeds the maximum number allowed. /// /// /// The resource is not available for this operation. For successful operation, the resource /// must be in the ACTIVE state. /// /// /// The requested resource could not be found. The stream might not be specified correctly. /// /// REST API Reference for IncreaseStreamRetentionPeriod Operation public virtual Task IncreaseStreamRetentionPeriodAsync(IncreaseStreamRetentionPeriodRequest request, System.Threading.CancellationToken cancellationToken = default(CancellationToken)) { var options = new InvokeOptions(); options.RequestMarshaller = IncreaseStreamRetentionPeriodRequestMarshaller.Instance; options.ResponseUnmarshaller = IncreaseStreamRetentionPeriodResponseUnmarshaller.Instance; return InvokeAsync(request, options, cancellationToken); } #endregion #region ListShards internal virtual ListShardsResponse ListShards(ListShardsRequest request) { var options = new InvokeOptions(); options.RequestMarshaller = ListShardsRequestMarshaller.Instance; options.ResponseUnmarshaller = ListShardsResponseUnmarshaller.Instance; return Invoke(request, options); } /// /// Lists the shards in a stream and provides information about each shard. This operation /// has a limit of 1000 transactions per second per data stream. /// /// /// /// When invoking this API, it is recommended you use the StreamARN input /// parameter rather than the StreamName input parameter. /// /// /// /// This action does not list expired shards. For information about expired shards, see /// Data /// Routing, Data Persistence, and Shard State after a Reshard. /// /// /// /// This API is a new operation that is used by the Amazon Kinesis Client Library (KCL). /// If you have a fine-grained IAM policy that only allows specific operations, you must /// update your policy to allow calls to this API. For more information, see Controlling /// Access to Amazon Kinesis Data Streams Resources Using IAM. /// /// /// /// Container for the necessary parameters to execute the ListShards service method. /// /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. /// /// /// The response from the ListShards service method, as returned by Kinesis. /// /// Specifies that you do not have the permissions required to perform this operation. /// /// /// The pagination token passed to the operation is expired. /// /// /// A specified parameter exceeds its restrictions, is not supported, or can't be used. /// For more information, see the returned message. /// /// /// The requested resource exceeds the maximum number allowed, or the number of concurrent /// stream requests exceeds the maximum number allowed. /// /// /// The resource is not available for this operation. For successful operation, the resource /// must be in the ACTIVE state. /// /// /// The requested resource could not be found. The stream might not be specified correctly. /// /// REST API Reference for ListShards Operation public virtual Task ListShardsAsync(ListShardsRequest request, System.Threading.CancellationToken cancellationToken = default(CancellationToken)) { var options = new InvokeOptions(); options.RequestMarshaller = ListShardsRequestMarshaller.Instance; options.ResponseUnmarshaller = ListShardsResponseUnmarshaller.Instance; return InvokeAsync(request, options, cancellationToken); } #endregion #region ListStreamConsumers internal virtual ListStreamConsumersResponse ListStreamConsumers(ListStreamConsumersRequest request) { var options = new InvokeOptions(); options.RequestMarshaller = ListStreamConsumersRequestMarshaller.Instance; options.ResponseUnmarshaller = ListStreamConsumersResponseUnmarshaller.Instance; return Invoke(request, options); } /// /// Lists the consumers registered to receive data from a stream using enhanced fan-out, /// and provides information about each consumer. /// /// /// /// This operation has a limit of 5 transactions per second per stream. /// /// /// Container for the necessary parameters to execute the ListStreamConsumers service method. /// /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. /// /// /// The response from the ListStreamConsumers service method, as returned by Kinesis. /// /// The pagination token passed to the operation is expired. /// /// /// A specified parameter exceeds its restrictions, is not supported, or can't be used. /// For more information, see the returned message. /// /// /// The requested resource exceeds the maximum number allowed, or the number of concurrent /// stream requests exceeds the maximum number allowed. /// /// /// The resource is not available for this operation. For successful operation, the resource /// must be in the ACTIVE state. /// /// /// The requested resource could not be found. The stream might not be specified correctly. /// /// REST API Reference for ListStreamConsumers Operation public virtual Task ListStreamConsumersAsync(ListStreamConsumersRequest request, System.Threading.CancellationToken cancellationToken = default(CancellationToken)) { var options = new InvokeOptions(); options.RequestMarshaller = ListStreamConsumersRequestMarshaller.Instance; options.ResponseUnmarshaller = ListStreamConsumersResponseUnmarshaller.Instance; return InvokeAsync(request, options, cancellationToken); } #endregion #region ListStreams internal virtual ListStreamsResponse ListStreams() { return ListStreams(new ListStreamsRequest()); } internal virtual ListStreamsResponse ListStreams(ListStreamsRequest request) { var options = new InvokeOptions(); options.RequestMarshaller = ListStreamsRequestMarshaller.Instance; options.ResponseUnmarshaller = ListStreamsResponseUnmarshaller.Instance; return Invoke(request, options); } /// /// Lists your Kinesis data streams. /// /// /// /// The number of streams may be too large to return from a single call to ListStreams. /// You can limit the number of returned streams using the Limit parameter. /// If you do not specify a value for the Limit parameter, Kinesis Data Streams /// uses the default limit, which is currently 100. /// /// /// /// You can detect if there are more streams available to list by using the HasMoreStreams /// flag from the returned output. If there are more streams available, you can request /// more streams by using the name of the last stream returned by the ListStreams /// request in the ExclusiveStartStreamName parameter in a subsequent request /// to ListStreams. The group of stream names returned by the subsequent /// request is then added to the list. You can continue this process until all the stream /// names have been collected in the list. /// /// /// /// ListStreams has a limit of five transactions per second per account. /// /// /// /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. /// /// /// The response from the ListStreams service method, as returned by Kinesis. /// /// The pagination token passed to the operation is expired. /// /// /// A specified parameter exceeds its restrictions, is not supported, or can't be used. /// For more information, see the returned message. /// /// /// The requested resource exceeds the maximum number allowed, or the number of concurrent /// stream requests exceeds the maximum number allowed. /// /// REST API Reference for ListStreams Operation public virtual Task ListStreamsAsync(System.Threading.CancellationToken cancellationToken = default(CancellationToken)) { return ListStreamsAsync(new ListStreamsRequest(), cancellationToken); } /// /// Lists your Kinesis data streams. /// /// /// /// The number of streams may be too large to return from a single call to ListStreams. /// You can limit the number of returned streams using the Limit parameter. /// If you do not specify a value for the Limit parameter, Kinesis Data Streams /// uses the default limit, which is currently 100. /// /// /// /// You can detect if there are more streams available to list by using the HasMoreStreams /// flag from the returned output. If there are more streams available, you can request /// more streams by using the name of the last stream returned by the ListStreams /// request in the ExclusiveStartStreamName parameter in a subsequent request /// to ListStreams. The group of stream names returned by the subsequent /// request is then added to the list. You can continue this process until all the stream /// names have been collected in the list. /// /// /// /// ListStreams has a limit of five transactions per second per account. /// /// /// Container for the necessary parameters to execute the ListStreams service method. /// /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. /// /// /// The response from the ListStreams service method, as returned by Kinesis. /// /// The pagination token passed to the operation is expired. /// /// /// A specified parameter exceeds its restrictions, is not supported, or can't be used. /// For more information, see the returned message. /// /// /// The requested resource exceeds the maximum number allowed, or the number of concurrent /// stream requests exceeds the maximum number allowed. /// /// REST API Reference for ListStreams Operation public virtual Task ListStreamsAsync(ListStreamsRequest request, System.Threading.CancellationToken cancellationToken = default(CancellationToken)) { var options = new InvokeOptions(); options.RequestMarshaller = ListStreamsRequestMarshaller.Instance; options.ResponseUnmarshaller = ListStreamsResponseUnmarshaller.Instance; return InvokeAsync(request, options, cancellationToken); } #endregion #region ListTagsForStream internal virtual ListTagsForStreamResponse ListTagsForStream(ListTagsForStreamRequest request) { var options = new InvokeOptions(); options.RequestMarshaller = ListTagsForStreamRequestMarshaller.Instance; options.ResponseUnmarshaller = ListTagsForStreamResponseUnmarshaller.Instance; return Invoke(request, options); } /// /// Lists the tags for the specified Kinesis data stream. This operation has a limit of /// five transactions per second per account. /// /// /// /// When invoking this API, it is recommended you use the StreamARN input /// parameter rather than the StreamName input parameter. /// /// /// /// Container for the necessary parameters to execute the ListTagsForStream service method. /// /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. /// /// /// The response from the ListTagsForStream service method, as returned by Kinesis. /// /// Specifies that you do not have the permissions required to perform this operation. /// /// /// A specified parameter exceeds its restrictions, is not supported, or can't be used. /// For more information, see the returned message. /// /// /// The requested resource exceeds the maximum number allowed, or the number of concurrent /// stream requests exceeds the maximum number allowed. /// /// /// The requested resource could not be found. The stream might not be specified correctly. /// /// REST API Reference for ListTagsForStream Operation public virtual Task ListTagsForStreamAsync(ListTagsForStreamRequest request, System.Threading.CancellationToken cancellationToken = default(CancellationToken)) { var options = new InvokeOptions(); options.RequestMarshaller = ListTagsForStreamRequestMarshaller.Instance; options.ResponseUnmarshaller = ListTagsForStreamResponseUnmarshaller.Instance; return InvokeAsync(request, options, cancellationToken); } #endregion #region MergeShards internal virtual MergeShardsResponse MergeShards(MergeShardsRequest request) { var options = new InvokeOptions(); options.RequestMarshaller = MergeShardsRequestMarshaller.Instance; options.ResponseUnmarshaller = MergeShardsResponseUnmarshaller.Instance; return Invoke(request, options); } /// /// Merges two adjacent shards in a Kinesis data stream and combines them into a single /// shard to reduce the stream's capacity to ingest and transport data. This API is only /// supported for the data streams with the provisioned capacity mode. Two shards are /// considered adjacent if the union of the hash key ranges for the two shards form a /// contiguous set with no gaps. For example, if you have two shards, one with a hash /// key range of 276...381 and the other with a hash key range of 382...454, then you /// could merge these two shards into a single shard that would have a hash key range /// of 276...454. After the merge, the single child shard receives data for all hash key /// values covered by the two parent shards. /// /// /// /// When invoking this API, it is recommended you use the StreamARN input /// parameter rather than the StreamName input parameter. /// /// /// /// MergeShards is called when there is a need to reduce the overall capacity /// of a stream because of excess capacity that is not being used. You must specify the /// shard to be merged and the adjacent shard for a stream. For more information about /// merging shards, see Merge /// Two Shards in the Amazon Kinesis Data Streams Developer Guide. /// /// /// /// If the stream is in the ACTIVE state, you can call MergeShards. /// If a stream is in the CREATING, UPDATING, or DELETING /// state, MergeShards returns a ResourceInUseException. If /// the specified stream does not exist, MergeShards returns a ResourceNotFoundException. /// /// /// /// /// You can use DescribeStreamSummary to check the state of the stream, which is /// returned in StreamStatus. /// /// /// /// MergeShards is an asynchronous operation. Upon receiving a MergeShards /// request, Amazon Kinesis Data Streams immediately returns a response and sets the StreamStatus /// to UPDATING. After the operation is completed, Kinesis Data Streams sets /// the StreamStatus to ACTIVE. Read and write operations continue /// to work while the stream is in the UPDATING state. /// /// /// /// You use DescribeStreamSummary and the ListShards APIs to determine the /// shard IDs that are specified in the MergeShards request. /// /// /// /// If you try to operate on too many streams in parallel using CreateStream, DeleteStream, /// MergeShards, or SplitShard, you receive a LimitExceededException. /// /// /// /// /// MergeShards has a limit of five transactions per second per account. /// /// /// Container for the necessary parameters to execute the MergeShards service method. /// /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. /// /// /// The response from the MergeShards service method, as returned by Kinesis. /// /// Specifies that you do not have the permissions required to perform this operation. /// /// /// A specified parameter exceeds its restrictions, is not supported, or can't be used. /// For more information, see the returned message. /// /// /// The requested resource exceeds the maximum number allowed, or the number of concurrent /// stream requests exceeds the maximum number allowed. /// /// /// The resource is not available for this operation. For successful operation, the resource /// must be in the ACTIVE state. /// /// /// The requested resource could not be found. The stream might not be specified correctly. /// /// /// Specifies that you tried to invoke this API for a data stream with the on-demand capacity /// mode. This API is only supported for data streams with the provisioned capacity mode. /// /// REST API Reference for MergeShards Operation public virtual Task MergeShardsAsync(MergeShardsRequest request, System.Threading.CancellationToken cancellationToken = default(CancellationToken)) { var options = new InvokeOptions(); options.RequestMarshaller = MergeShardsRequestMarshaller.Instance; options.ResponseUnmarshaller = MergeShardsResponseUnmarshaller.Instance; return InvokeAsync(request, options, cancellationToken); } #endregion #region PutRecord internal virtual PutRecordResponse PutRecord(PutRecordRequest request) { var options = new InvokeOptions(); options.RequestMarshaller = PutRecordRequestMarshaller.Instance; options.ResponseUnmarshaller = PutRecordResponseUnmarshaller.Instance; return Invoke(request, options); } /// /// Writes a single data record into an Amazon Kinesis data stream. Call PutRecord /// to send data into the stream for real-time ingestion and subsequent processing, one /// record at a time. Each shard can support writes up to 1,000 records per second, up /// to a maximum data write total of 1 MiB per second. /// /// /// /// When invoking this API, it is recommended you use the StreamARN input /// parameter rather than the StreamName input parameter. /// /// /// /// You must specify the name of the stream that captures, stores, and transports the /// data; a partition key; and the data blob itself. /// /// /// /// The data blob can be any type of data; for example, a segment from a log file, geographic/location /// data, website clickstream data, and so on. /// /// /// /// The partition key is used by Kinesis Data Streams to distribute data across shards. /// Kinesis Data Streams segregates the data records that belong to a stream into multiple /// shards, using the partition key associated with each data record to determine the /// shard to which a given data record belongs. /// /// /// /// Partition keys are Unicode strings, with a maximum length limit of 256 characters /// for each key. An MD5 hash function is used to map partition keys to 128-bit integer /// values and to map associated data records to shards using the hash key ranges of the /// shards. You can override hashing the partition key to determine the shard by explicitly /// specifying a hash value using the ExplicitHashKey parameter. For more /// information, see Adding /// Data to a Stream in the Amazon Kinesis Data Streams Developer Guide. /// /// /// /// PutRecord returns the shard ID of where the data record was placed and /// the sequence number that was assigned to the data record. /// /// /// /// Sequence numbers increase over time and are specific to a shard within a stream, not /// across all shards within a stream. To guarantee strictly increasing ordering, write /// serially to a shard and use the SequenceNumberForOrdering parameter. /// For more information, see Adding /// Data to a Stream in the Amazon Kinesis Data Streams Developer Guide. /// /// /// /// After you write a record to a stream, you cannot modify that record or its order within /// the stream. /// /// /// /// If a PutRecord request cannot be processed because of insufficient provisioned /// throughput on the shard involved in the request, PutRecord throws ProvisionedThroughputExceededException. /// /// /// /// /// By default, data records are accessible for 24 hours from the time that they are added /// to a stream. You can use IncreaseStreamRetentionPeriod or DecreaseStreamRetentionPeriod /// to modify this retention period. /// /// /// Container for the necessary parameters to execute the PutRecord service method. /// /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. /// /// /// The response from the PutRecord service method, as returned by Kinesis. /// /// Specifies that you do not have the permissions required to perform this operation. /// /// /// A specified parameter exceeds its restrictions, is not supported, or can't be used. /// For more information, see the returned message. /// /// /// The ciphertext references a key that doesn't exist or that you don't have access to. /// /// /// The request was rejected because the specified customer master key (CMK) isn't enabled. /// /// /// The request was rejected because the state of the specified resource isn't valid for /// this request. For more information, see How /// Key State Affects Use of a Customer Master Key in the Amazon Web Services Key /// Management Service Developer Guide. /// /// /// The request was rejected because the specified entity or resource can't be found. /// /// /// The Amazon Web Services access key ID needs a subscription for the service. /// /// /// The request was denied due to request throttling. For more information about throttling, /// see Limits /// in the Amazon Web Services Key Management Service Developer Guide. /// /// /// The request rate for the stream is too high, or the requested data is too large for /// the available throughput. Reduce the frequency or size of your requests. For more /// information, see Streams /// Limits in the Amazon Kinesis Data Streams Developer Guide, and Error /// Retries and Exponential Backoff in Amazon Web Services in the Amazon Web Services /// General Reference. /// /// /// The requested resource could not be found. The stream might not be specified correctly. /// /// REST API Reference for PutRecord Operation public virtual Task PutRecordAsync(PutRecordRequest request, System.Threading.CancellationToken cancellationToken = default(CancellationToken)) { var options = new InvokeOptions(); options.RequestMarshaller = PutRecordRequestMarshaller.Instance; options.ResponseUnmarshaller = PutRecordResponseUnmarshaller.Instance; return InvokeAsync(request, options, cancellationToken); } #endregion #region PutRecords internal virtual PutRecordsResponse PutRecords(PutRecordsRequest request) { var options = new InvokeOptions(); options.RequestMarshaller = PutRecordsRequestMarshaller.Instance; options.ResponseUnmarshaller = PutRecordsResponseUnmarshaller.Instance; return Invoke(request, options); } /// /// Writes multiple data records into a Kinesis data stream in a single call (also referred /// to as a PutRecords request). Use this operation to send data into the /// stream for data ingestion and processing. /// /// /// /// When invoking this API, it is recommended you use the StreamARN input /// parameter rather than the StreamName input parameter. /// /// /// /// Each PutRecords request can support up to 500 records. Each record in /// the request can be as large as 1 MiB, up to a limit of 5 MiB for the entire request, /// including partition keys. Each shard can support writes up to 1,000 records per second, /// up to a maximum data write total of 1 MiB per second. /// /// /// /// You must specify the name of the stream that captures, stores, and transports the /// data; and an array of request Records, with each record in the array /// requiring a partition key and data blob. The record size limit applies to the total /// size of the partition key and data blob. /// /// /// /// The data blob can be any type of data; for example, a segment from a log file, geographic/location /// data, website clickstream data, and so on. /// /// /// /// The partition key is used by Kinesis Data Streams as input to a hash function that /// maps the partition key and associated data to a specific shard. An MD5 hash function /// is used to map partition keys to 128-bit integer values and to map associated data /// records to shards. As a result of this hashing mechanism, all data records with the /// same partition key map to the same shard within the stream. For more information, /// see Adding /// Data to a Stream in the Amazon Kinesis Data Streams Developer Guide. /// /// /// /// Each record in the Records array may include an optional parameter, ExplicitHashKey, /// which overrides the partition key to shard mapping. This parameter allows a data producer /// to determine explicitly the shard where the record is stored. For more information, /// see Adding /// Multiple Records with PutRecords in the Amazon Kinesis Data Streams Developer /// Guide. /// /// /// /// The PutRecords response includes an array of response Records. /// Each record in the response array directly correlates with a record in the request /// array using natural ordering, from the top to the bottom of the request and response. /// The response Records array always includes the same number of records /// as the request array. /// /// /// /// The response Records array includes both successfully and unsuccessfully /// processed records. Kinesis Data Streams attempts to process all records in each PutRecords /// request. A single record failure does not stop the processing of subsequent records. /// As a result, PutRecords doesn't guarantee the ordering of records. If you need to /// read records in the same order they are written to the stream, use PutRecord /// instead of PutRecords, and write to the same shard. /// /// /// /// A successfully processed record includes ShardId and SequenceNumber /// values. The ShardId parameter identifies the shard in the stream where /// the record is stored. The SequenceNumber parameter is an identifier assigned /// to the put record, unique to all records in the stream. /// /// /// /// An unsuccessfully processed record includes ErrorCode and ErrorMessage /// values. ErrorCode reflects the type of error and can be one of the following /// values: ProvisionedThroughputExceededException or InternalFailure. /// ErrorMessage provides more detailed information about the ProvisionedThroughputExceededException /// exception including the account ID, stream name, and shard ID of the record that was /// throttled. For more information about partially successful responses, see Adding /// Multiple Records with PutRecords in the Amazon Kinesis Data Streams Developer /// Guide. /// /// /// /// After you write a record to a stream, you cannot modify that record or its order within /// the stream. /// /// /// /// By default, data records are accessible for 24 hours from the time that they are added /// to a stream. You can use IncreaseStreamRetentionPeriod or DecreaseStreamRetentionPeriod /// to modify this retention period. /// /// /// Container for the necessary parameters to execute the PutRecords service method. /// /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. /// /// /// The response from the PutRecords service method, as returned by Kinesis. /// /// Specifies that you do not have the permissions required to perform this operation. /// /// /// A specified parameter exceeds its restrictions, is not supported, or can't be used. /// For more information, see the returned message. /// /// /// The ciphertext references a key that doesn't exist or that you don't have access to. /// /// /// The request was rejected because the specified customer master key (CMK) isn't enabled. /// /// /// The request was rejected because the state of the specified resource isn't valid for /// this request. For more information, see How /// Key State Affects Use of a Customer Master Key in the Amazon Web Services Key /// Management Service Developer Guide. /// /// /// The request was rejected because the specified entity or resource can't be found. /// /// /// The Amazon Web Services access key ID needs a subscription for the service. /// /// /// The request was denied due to request throttling. For more information about throttling, /// see Limits /// in the Amazon Web Services Key Management Service Developer Guide. /// /// /// The request rate for the stream is too high, or the requested data is too large for /// the available throughput. Reduce the frequency or size of your requests. For more /// information, see Streams /// Limits in the Amazon Kinesis Data Streams Developer Guide, and Error /// Retries and Exponential Backoff in Amazon Web Services in the Amazon Web Services /// General Reference. /// /// /// The requested resource could not be found. The stream might not be specified correctly. /// /// REST API Reference for PutRecords Operation public virtual Task PutRecordsAsync(PutRecordsRequest request, System.Threading.CancellationToken cancellationToken = default(CancellationToken)) { var options = new InvokeOptions(); options.RequestMarshaller = PutRecordsRequestMarshaller.Instance; options.ResponseUnmarshaller = PutRecordsResponseUnmarshaller.Instance; return InvokeAsync(request, options, cancellationToken); } #endregion #region RegisterStreamConsumer internal virtual RegisterStreamConsumerResponse RegisterStreamConsumer(RegisterStreamConsumerRequest request) { var options = new InvokeOptions(); options.RequestMarshaller = RegisterStreamConsumerRequestMarshaller.Instance; options.ResponseUnmarshaller = RegisterStreamConsumerResponseUnmarshaller.Instance; return Invoke(request, options); } /// /// Registers a consumer with a Kinesis data stream. When you use this operation, the /// consumer you register can then call SubscribeToShard to receive data from the /// stream using enhanced fan-out, at a rate of up to 2 MiB per second for every shard /// you subscribe to. This rate is unaffected by the total number of consumers that read /// from the same stream. /// /// /// /// You can register up to 20 consumers per stream. A given consumer can only be registered /// with one stream at a time. /// /// /// /// For an example of how to use this operations, see Enhanced /// Fan-Out Using the Kinesis Data Streams API. /// /// /// /// The use of this operation has a limit of five transactions per second per account. /// Also, only 5 consumers can be created simultaneously. In other words, you cannot have /// more than 5 consumers in a CREATING status at the same time. Registering /// a 6th consumer while there are 5 in a CREATING status results in a LimitExceededException. /// /// /// Container for the necessary parameters to execute the RegisterStreamConsumer service method. /// /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. /// /// /// The response from the RegisterStreamConsumer service method, as returned by Kinesis. /// /// A specified parameter exceeds its restrictions, is not supported, or can't be used. /// For more information, see the returned message. /// /// /// The requested resource exceeds the maximum number allowed, or the number of concurrent /// stream requests exceeds the maximum number allowed. /// /// /// The resource is not available for this operation. For successful operation, the resource /// must be in the ACTIVE state. /// /// /// The requested resource could not be found. The stream might not be specified correctly. /// /// REST API Reference for RegisterStreamConsumer Operation public virtual Task RegisterStreamConsumerAsync(RegisterStreamConsumerRequest request, System.Threading.CancellationToken cancellationToken = default(CancellationToken)) { var options = new InvokeOptions(); options.RequestMarshaller = RegisterStreamConsumerRequestMarshaller.Instance; options.ResponseUnmarshaller = RegisterStreamConsumerResponseUnmarshaller.Instance; return InvokeAsync(request, options, cancellationToken); } #endregion #region RemoveTagsFromStream internal virtual RemoveTagsFromStreamResponse RemoveTagsFromStream(RemoveTagsFromStreamRequest request) { var options = new InvokeOptions(); options.RequestMarshaller = RemoveTagsFromStreamRequestMarshaller.Instance; options.ResponseUnmarshaller = RemoveTagsFromStreamResponseUnmarshaller.Instance; return Invoke(request, options); } /// /// Removes tags from the specified Kinesis data stream. Removed tags are deleted and /// cannot be recovered after this operation successfully completes. /// /// /// /// When invoking this API, it is recommended you use the StreamARN input /// parameter rather than the StreamName input parameter. /// /// /// /// If you specify a tag that does not exist, it is ignored. /// /// /// /// RemoveTagsFromStream has a limit of five transactions per second per account. /// /// /// Container for the necessary parameters to execute the RemoveTagsFromStream service method. /// /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. /// /// /// The response from the RemoveTagsFromStream service method, as returned by Kinesis. /// /// Specifies that you do not have the permissions required to perform this operation. /// /// /// A specified parameter exceeds its restrictions, is not supported, or can't be used. /// For more information, see the returned message. /// /// /// The requested resource exceeds the maximum number allowed, or the number of concurrent /// stream requests exceeds the maximum number allowed. /// /// /// The resource is not available for this operation. For successful operation, the resource /// must be in the ACTIVE state. /// /// /// The requested resource could not be found. The stream might not be specified correctly. /// /// REST API Reference for RemoveTagsFromStream Operation public virtual Task RemoveTagsFromStreamAsync(RemoveTagsFromStreamRequest request, System.Threading.CancellationToken cancellationToken = default(CancellationToken)) { var options = new InvokeOptions(); options.RequestMarshaller = RemoveTagsFromStreamRequestMarshaller.Instance; options.ResponseUnmarshaller = RemoveTagsFromStreamResponseUnmarshaller.Instance; return InvokeAsync(request, options, cancellationToken); } #endregion #region SplitShard internal virtual SplitShardResponse SplitShard(SplitShardRequest request) { var options = new InvokeOptions(); options.RequestMarshaller = SplitShardRequestMarshaller.Instance; options.ResponseUnmarshaller = SplitShardResponseUnmarshaller.Instance; return Invoke(request, options); } /// /// Splits a shard into two new shards in the Kinesis data stream, to increase the stream's /// capacity to ingest and transport data. SplitShard is called when there /// is a need to increase the overall capacity of a stream because of an expected increase /// in the volume of data records being ingested. This API is only supported for the data /// streams with the provisioned capacity mode. /// /// /// /// When invoking this API, it is recommended you use the StreamARN input /// parameter rather than the StreamName input parameter. /// /// /// /// You can also use SplitShard when a shard appears to be approaching its /// maximum utilization; for example, the producers sending data into the specific shard /// are suddenly sending more than previously anticipated. You can also call SplitShard /// to increase stream capacity, so that more Kinesis Data Streams applications can simultaneously /// read data from the stream for real-time processing. /// /// /// /// You must specify the shard to be split and the new hash key, which is the position /// in the shard where the shard gets split in two. In many cases, the new hash key might /// be the average of the beginning and ending hash key, but it can be any hash key value /// in the range being mapped into the shard. For more information, see Split /// a Shard in the Amazon Kinesis Data Streams Developer Guide. /// /// /// /// You can use DescribeStreamSummary and the ListShards APIs to determine /// the shard ID and hash key values for the ShardToSplit and NewStartingHashKey /// parameters that are specified in the SplitShard request. /// /// /// /// SplitShard is an asynchronous operation. Upon receiving a SplitShard /// request, Kinesis Data Streams immediately returns a response and sets the stream status /// to UPDATING. After the operation is completed, Kinesis Data Streams sets /// the stream status to ACTIVE. Read and write operations continue to work /// while the stream is in the UPDATING state. /// /// /// /// You can use DescribeStreamSummary to check the status of the stream, which /// is returned in StreamStatus. If the stream is in the ACTIVE /// state, you can call SplitShard. /// /// /// /// If the specified stream does not exist, DescribeStreamSummary returns a ResourceNotFoundException. /// If you try to create more shards than are authorized for your account, you receive /// a LimitExceededException. /// /// /// /// For the default shard limit for an Amazon Web Services account, see Kinesis /// Data Streams Limits in the Amazon Kinesis Data Streams Developer Guide. /// To increase this limit, contact /// Amazon Web Services Support. /// /// /// /// If you try to operate on too many streams simultaneously using CreateStream, /// DeleteStream, MergeShards, and/or SplitShard, you receive a LimitExceededException. /// /// /// /// /// SplitShard has a limit of five transactions per second per account. /// /// /// Container for the necessary parameters to execute the SplitShard service method. /// /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. /// /// /// The response from the SplitShard service method, as returned by Kinesis. /// /// Specifies that you do not have the permissions required to perform this operation. /// /// /// A specified parameter exceeds its restrictions, is not supported, or can't be used. /// For more information, see the returned message. /// /// /// The requested resource exceeds the maximum number allowed, or the number of concurrent /// stream requests exceeds the maximum number allowed. /// /// /// The resource is not available for this operation. For successful operation, the resource /// must be in the ACTIVE state. /// /// /// The requested resource could not be found. The stream might not be specified correctly. /// /// /// Specifies that you tried to invoke this API for a data stream with the on-demand capacity /// mode. This API is only supported for data streams with the provisioned capacity mode. /// /// REST API Reference for SplitShard Operation public virtual Task SplitShardAsync(SplitShardRequest request, System.Threading.CancellationToken cancellationToken = default(CancellationToken)) { var options = new InvokeOptions(); options.RequestMarshaller = SplitShardRequestMarshaller.Instance; options.ResponseUnmarshaller = SplitShardResponseUnmarshaller.Instance; return InvokeAsync(request, options, cancellationToken); } #endregion #region StartStreamEncryption internal virtual StartStreamEncryptionResponse StartStreamEncryption(StartStreamEncryptionRequest request) { var options = new InvokeOptions(); options.RequestMarshaller = StartStreamEncryptionRequestMarshaller.Instance; options.ResponseUnmarshaller = StartStreamEncryptionResponseUnmarshaller.Instance; return Invoke(request, options); } /// /// Enables or updates server-side encryption using an Amazon Web Services KMS key for /// a specified stream. /// /// /// /// Starting encryption is an asynchronous operation. Upon receiving the request, Kinesis /// Data Streams returns immediately and sets the status of the stream to UPDATING. /// After the update is complete, Kinesis Data Streams sets the status of the stream back /// to ACTIVE. Updating or applying encryption normally takes a few seconds /// to complete, but it can take minutes. You can continue to read and write data to your /// stream while its status is UPDATING. Once the status of the stream is /// ACTIVE, encryption begins for records written to the stream. /// /// /// /// API Limits: You can successfully apply a new Amazon Web Services KMS key for server-side /// encryption 25 times in a rolling 24-hour period. /// /// /// /// Note: It can take up to 5 seconds after the stream is in an ACTIVE status /// before all records written to the stream are encrypted. After you enable encryption, /// you can verify that encryption is applied by inspecting the API response from PutRecord /// or PutRecords. /// /// /// /// When invoking this API, it is recommended you use the StreamARN input /// parameter rather than the StreamName input parameter. /// /// /// /// Container for the necessary parameters to execute the StartStreamEncryption service method. /// /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. /// /// /// The response from the StartStreamEncryption service method, as returned by Kinesis. /// /// Specifies that you do not have the permissions required to perform this operation. /// /// /// A specified parameter exceeds its restrictions, is not supported, or can't be used. /// For more information, see the returned message. /// /// /// The ciphertext references a key that doesn't exist or that you don't have access to. /// /// /// The request was rejected because the specified customer master key (CMK) isn't enabled. /// /// /// The request was rejected because the state of the specified resource isn't valid for /// this request. For more information, see How /// Key State Affects Use of a Customer Master Key in the Amazon Web Services Key /// Management Service Developer Guide. /// /// /// The request was rejected because the specified entity or resource can't be found. /// /// /// The Amazon Web Services access key ID needs a subscription for the service. /// /// /// The request was denied due to request throttling. For more information about throttling, /// see Limits /// in the Amazon Web Services Key Management Service Developer Guide. /// /// /// The requested resource exceeds the maximum number allowed, or the number of concurrent /// stream requests exceeds the maximum number allowed. /// /// /// The resource is not available for this operation. For successful operation, the resource /// must be in the ACTIVE state. /// /// /// The requested resource could not be found. The stream might not be specified correctly. /// /// REST API Reference for StartStreamEncryption Operation public virtual Task StartStreamEncryptionAsync(StartStreamEncryptionRequest request, System.Threading.CancellationToken cancellationToken = default(CancellationToken)) { var options = new InvokeOptions(); options.RequestMarshaller = StartStreamEncryptionRequestMarshaller.Instance; options.ResponseUnmarshaller = StartStreamEncryptionResponseUnmarshaller.Instance; return InvokeAsync(request, options, cancellationToken); } #endregion #region StopStreamEncryption internal virtual StopStreamEncryptionResponse StopStreamEncryption(StopStreamEncryptionRequest request) { var options = new InvokeOptions(); options.RequestMarshaller = StopStreamEncryptionRequestMarshaller.Instance; options.ResponseUnmarshaller = StopStreamEncryptionResponseUnmarshaller.Instance; return Invoke(request, options); } /// /// Disables server-side encryption for a specified stream. /// /// /// /// When invoking this API, it is recommended you use the StreamARN input /// parameter rather than the StreamName input parameter. /// /// /// /// Stopping encryption is an asynchronous operation. Upon receiving the request, Kinesis /// Data Streams returns immediately and sets the status of the stream to UPDATING. /// After the update is complete, Kinesis Data Streams sets the status of the stream back /// to ACTIVE. Stopping encryption normally takes a few seconds to complete, /// but it can take minutes. You can continue to read and write data to your stream while /// its status is UPDATING. Once the status of the stream is ACTIVE, /// records written to the stream are no longer encrypted by Kinesis Data Streams. /// /// /// /// API Limits: You can successfully disable server-side encryption 25 times in a rolling /// 24-hour period. /// /// /// /// Note: It can take up to 5 seconds after the stream is in an ACTIVE status /// before all records written to the stream are no longer subject to encryption. After /// you disabled encryption, you can verify that encryption is not applied by inspecting /// the API response from PutRecord or PutRecords. /// /// /// Container for the necessary parameters to execute the StopStreamEncryption service method. /// /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. /// /// /// The response from the StopStreamEncryption service method, as returned by Kinesis. /// /// Specifies that you do not have the permissions required to perform this operation. /// /// /// A specified parameter exceeds its restrictions, is not supported, or can't be used. /// For more information, see the returned message. /// /// /// The requested resource exceeds the maximum number allowed, or the number of concurrent /// stream requests exceeds the maximum number allowed. /// /// /// The resource is not available for this operation. For successful operation, the resource /// must be in the ACTIVE state. /// /// /// The requested resource could not be found. The stream might not be specified correctly. /// /// REST API Reference for StopStreamEncryption Operation public virtual Task StopStreamEncryptionAsync(StopStreamEncryptionRequest request, System.Threading.CancellationToken cancellationToken = default(CancellationToken)) { var options = new InvokeOptions(); options.RequestMarshaller = StopStreamEncryptionRequestMarshaller.Instance; options.ResponseUnmarshaller = StopStreamEncryptionResponseUnmarshaller.Instance; return InvokeAsync(request, options, cancellationToken); } #endregion #region UpdateShardCount internal virtual UpdateShardCountResponse UpdateShardCount(UpdateShardCountRequest request) { var options = new InvokeOptions(); options.RequestMarshaller = UpdateShardCountRequestMarshaller.Instance; options.ResponseUnmarshaller = UpdateShardCountResponseUnmarshaller.Instance; return Invoke(request, options); } /// /// Updates the shard count of the specified stream to the specified number of shards. /// This API is only supported for the data streams with the provisioned capacity mode. /// /// /// /// When invoking this API, it is recommended you use the StreamARN input /// parameter rather than the StreamName input parameter. /// /// /// /// Updating the shard count is an asynchronous operation. Upon receiving the request, /// Kinesis Data Streams returns immediately and sets the status of the stream to UPDATING. /// After the update is complete, Kinesis Data Streams sets the status of the stream back /// to ACTIVE. Depending on the size of the stream, the scaling action could /// take a few minutes to complete. You can continue to read and write data to your stream /// while its status is UPDATING. /// /// /// /// To update the shard count, Kinesis Data Streams performs splits or merges on individual /// shards. This can cause short-lived shards to be created, in addition to the final /// shards. These short-lived shards count towards your total shard limit for your account /// in the Region. /// /// /// /// When using this operation, we recommend that you specify a target shard count that /// is a multiple of 25% (25%, 50%, 75%, 100%). You can specify any target value within /// your shard limit. However, if you specify a target that isn't a multiple of 25%, the /// scaling action might take longer to complete. /// /// /// /// This operation has the following default limits. By default, you cannot do the following: /// ///
  • /// /// Scale more than ten times per rolling 24-hour period per stream /// ///
  • /// /// Scale up to more than double your current shard count for a stream /// ///
  • /// /// Scale down below half your current shard count for a stream /// ///
  • /// /// Scale up to more than 10000 shards in a stream /// ///
  • /// /// Scale a stream with more than 10000 shards down unless the result is less than 10000 /// shards /// ///
  • /// /// Scale up to more than the shard limit for your account /// ///
/// /// For the default limits for an Amazon Web Services account, see Streams /// Limits in the Amazon Kinesis Data Streams Developer Guide. To request an /// increase in the call rate limit, the shard limit for this API, or your overall shard /// limit, use the limits /// form. /// ///
/// Container for the necessary parameters to execute the UpdateShardCount service method. /// /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. /// /// /// The response from the UpdateShardCount service method, as returned by Kinesis. /// /// Specifies that you do not have the permissions required to perform this operation. /// /// /// A specified parameter exceeds its restrictions, is not supported, or can't be used. /// For more information, see the returned message. /// /// /// The requested resource exceeds the maximum number allowed, or the number of concurrent /// stream requests exceeds the maximum number allowed. /// /// /// The resource is not available for this operation. For successful operation, the resource /// must be in the ACTIVE state. /// /// /// The requested resource could not be found. The stream might not be specified correctly. /// /// /// Specifies that you tried to invoke this API for a data stream with the on-demand capacity /// mode. This API is only supported for data streams with the provisioned capacity mode. /// /// REST API Reference for UpdateShardCount Operation public virtual Task UpdateShardCountAsync(UpdateShardCountRequest request, System.Threading.CancellationToken cancellationToken = default(CancellationToken)) { var options = new InvokeOptions(); options.RequestMarshaller = UpdateShardCountRequestMarshaller.Instance; options.ResponseUnmarshaller = UpdateShardCountResponseUnmarshaller.Instance; return InvokeAsync(request, options, cancellationToken); } #endregion #region UpdateStreamMode internal virtual UpdateStreamModeResponse UpdateStreamMode(UpdateStreamModeRequest request) { var options = new InvokeOptions(); options.RequestMarshaller = UpdateStreamModeRequestMarshaller.Instance; options.ResponseUnmarshaller = UpdateStreamModeResponseUnmarshaller.Instance; return Invoke(request, options); } /// /// Updates the capacity mode of the data stream. Currently, in Kinesis Data Streams, /// you can choose between an on-demand capacity mode and a provisioned /// capacity mode for your data stream. /// /// Container for the necessary parameters to execute the UpdateStreamMode service method. /// /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. /// /// /// The response from the UpdateStreamMode service method, as returned by Kinesis. /// /// A specified parameter exceeds its restrictions, is not supported, or can't be used. /// For more information, see the returned message. /// /// /// The requested resource exceeds the maximum number allowed, or the number of concurrent /// stream requests exceeds the maximum number allowed. /// /// /// The resource is not available for this operation. For successful operation, the resource /// must be in the ACTIVE state. /// /// /// The requested resource could not be found. The stream might not be specified correctly. /// /// REST API Reference for UpdateStreamMode Operation public virtual Task UpdateStreamModeAsync(UpdateStreamModeRequest request, System.Threading.CancellationToken cancellationToken = default(CancellationToken)) { var options = new InvokeOptions(); options.RequestMarshaller = UpdateStreamModeRequestMarshaller.Instance; options.ResponseUnmarshaller = UpdateStreamModeResponseUnmarshaller.Instance; return InvokeAsync(request, options, cancellationToken); } #endregion } }