// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. package dynamodbstreams import ( "time" "github.com/aws/aws-sdk-go/aws" "github.com/aws/aws-sdk-go/aws/awsutil" "github.com/aws/aws-sdk-go/aws/request" "github.com/aws/aws-sdk-go/service/dynamodb" ) const opDescribeStream = "DescribeStream" // DescribeStreamRequest generates a "aws/request.Request" representing the // client's request for the DescribeStream operation. The "output" return // value will be populated with the request's response once the request completes // successfully. // // Use "Send" method on the returned Request to send the API call to the service. // the "output" return value is not valid until after Send returns without error. // // See DescribeStream for more information on using the DescribeStream // API call, and error handling. // // This method is useful when you want to inject custom logic or configuration // into the SDK's request lifecycle. Such as custom headers, or retry logic. // // // // Example sending a request using the DescribeStreamRequest method. // req, resp := client.DescribeStreamRequest(params) // // err := req.Send() // if err == nil { // resp is now filled // fmt.Println(resp) // } // // See also, https://docs.aws.amazon.com/goto/WebAPI/streams-dynamodb-2012-08-10/DescribeStream func (c *DynamoDBStreams) DescribeStreamRequest(input *DescribeStreamInput) (req *request.Request, output *DescribeStreamOutput) { op := &request.Operation{ Name: opDescribeStream, HTTPMethod: "POST", HTTPPath: "/", } if input == nil { input = &DescribeStreamInput{} } output = &DescribeStreamOutput{} req = c.newRequest(op, input, output) return } // DescribeStream API operation for Amazon DynamoDB Streams. // // Returns information about a stream, including the current status of the stream, // its Amazon Resource Name (ARN), the composition of its shards, and its corresponding // DynamoDB table. // // You can call DescribeStream at a maximum rate of 10 times per second. // // Each shard in the stream has a SequenceNumberRange associated with it. If // the SequenceNumberRange has a StartingSequenceNumber but no EndingSequenceNumber, // then the shard is still open (able to receive more stream records). If both // StartingSequenceNumber and EndingSequenceNumber are present, then that shard // is closed and can no longer receive more data. // // Returns awserr.Error for service API and SDK errors. Use runtime type assertions // with awserr.Error's Code and Message methods to get detailed information about // the error. // // See the AWS API reference guide for Amazon DynamoDB Streams's // API operation DescribeStream for usage and error information. // // Returned Error Codes: // * ErrCodeResourceNotFoundException "ResourceNotFoundException" // The operation tried to access a nonexistent stream. // // * ErrCodeInternalServerError "InternalServerError" // An error occurred on the server side. // // See also, https://docs.aws.amazon.com/goto/WebAPI/streams-dynamodb-2012-08-10/DescribeStream func (c *DynamoDBStreams) DescribeStream(input *DescribeStreamInput) (*DescribeStreamOutput, error) { req, out := c.DescribeStreamRequest(input) return out, req.Send() } // DescribeStreamWithContext is the same as DescribeStream with the addition of // the ability to pass a context and additional request options. // // See DescribeStream for details on how to use this API operation. // // The context must be non-nil and will be used for request cancellation. If // the context is nil a panic will occur. In the future the SDK may create // sub-contexts for http.Requests. See https://golang.org/pkg/context/ // for more information on using Contexts. func (c *DynamoDBStreams) DescribeStreamWithContext(ctx aws.Context, input *DescribeStreamInput, opts ...request.Option) (*DescribeStreamOutput, error) { req, out := c.DescribeStreamRequest(input) req.SetContext(ctx) req.ApplyOptions(opts...) return out, req.Send() } const opGetRecords = "GetRecords" // GetRecordsRequest generates a "aws/request.Request" representing the // client's request for the GetRecords operation. The "output" return // value will be populated with the request's response once the request completes // successfully. // // Use "Send" method on the returned Request to send the API call to the service. // the "output" return value is not valid until after Send returns without error. // // See GetRecords for more information on using the GetRecords // API call, and error handling. // // This method is useful when you want to inject custom logic or configuration // into the SDK's request lifecycle. Such as custom headers, or retry logic. // // // // Example sending a request using the GetRecordsRequest method. // req, resp := client.GetRecordsRequest(params) // // err := req.Send() // if err == nil { // resp is now filled // fmt.Println(resp) // } // // See also, https://docs.aws.amazon.com/goto/WebAPI/streams-dynamodb-2012-08-10/GetRecords func (c *DynamoDBStreams) GetRecordsRequest(input *GetRecordsInput) (req *request.Request, output *GetRecordsOutput) { op := &request.Operation{ Name: opGetRecords, HTTPMethod: "POST", HTTPPath: "/", } if input == nil { input = &GetRecordsInput{} } output = &GetRecordsOutput{} req = c.newRequest(op, input, output) return } // GetRecords API operation for Amazon DynamoDB Streams. // // Retrieves the stream records from a given shard. // // Specify a shard iterator using the ShardIterator parameter. The shard iterator // specifies the position in the shard from which you want to start reading // stream records sequentially. If there are no stream records available in // the portion of the shard that the iterator points to, GetRecords returns // an empty list. Note that it might take multiple calls to get to a portion // of the shard that contains stream records. // // GetRecords can retrieve a maximum of 1 MB of data or 1000 stream records, // whichever comes first. // // Returns awserr.Error for service API and SDK errors. Use runtime type assertions // with awserr.Error's Code and Message methods to get detailed information about // the error. // // See the AWS API reference guide for Amazon DynamoDB Streams's // API operation GetRecords for usage and error information. // // Returned Error Codes: // * ErrCodeResourceNotFoundException "ResourceNotFoundException" // The operation tried to access a nonexistent stream. // // * ErrCodeLimitExceededException "LimitExceededException" // Your request rate is too high. The AWS SDKs for DynamoDB automatically retry // requests that receive this exception. Your request is eventually successful, // unless your retry queue is too large to finish. Reduce the frequency of requests // and use exponential backoff. For more information, go to Error Retries and // Exponential Backoff (http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/ErrorHandling.html#APIRetries) // in the Amazon DynamoDB Developer Guide. // // * ErrCodeInternalServerError "InternalServerError" // An error occurred on the server side. // // * ErrCodeExpiredIteratorException "ExpiredIteratorException" // The shard iterator has expired and can no longer be used to retrieve stream // records. A shard iterator expires 15 minutes after it is retrieved using // the GetShardIterator action. // // * ErrCodeTrimmedDataAccessException "TrimmedDataAccessException" // The operation attempted to read past the oldest stream record in a shard. // // In DynamoDB Streams, there is a 24 hour limit on data retention. Stream records // whose age exceeds this limit are subject to removal (trimming) from the stream. // You might receive a TrimmedDataAccessException if: // // * You request a shard iterator with a sequence number older than the trim // point (24 hours). // // * You obtain a shard iterator, but before you use the iterator in a GetRecords // request, a stream record in the shard exceeds the 24 hour period and is // trimmed. This causes the iterator to access a record that no longer exists. // // See also, https://docs.aws.amazon.com/goto/WebAPI/streams-dynamodb-2012-08-10/GetRecords func (c *DynamoDBStreams) GetRecords(input *GetRecordsInput) (*GetRecordsOutput, error) { req, out := c.GetRecordsRequest(input) return out, req.Send() } // GetRecordsWithContext is the same as GetRecords with the addition of // the ability to pass a context and additional request options. // // See GetRecords for details on how to use this API operation. // // The context must be non-nil and will be used for request cancellation. If // the context is nil a panic will occur. In the future the SDK may create // sub-contexts for http.Requests. See https://golang.org/pkg/context/ // for more information on using Contexts. func (c *DynamoDBStreams) GetRecordsWithContext(ctx aws.Context, input *GetRecordsInput, opts ...request.Option) (*GetRecordsOutput, error) { req, out := c.GetRecordsRequest(input) req.SetContext(ctx) req.ApplyOptions(opts...) return out, req.Send() } const opGetShardIterator = "GetShardIterator" // GetShardIteratorRequest generates a "aws/request.Request" representing the // client's request for the GetShardIterator operation. The "output" return // value will be populated with the request's response once the request completes // successfully. // // Use "Send" method on the returned Request to send the API call to the service. // the "output" return value is not valid until after Send returns without error. // // See GetShardIterator for more information on using the GetShardIterator // API call, and error handling. // // This method is useful when you want to inject custom logic or configuration // into the SDK's request lifecycle. Such as custom headers, or retry logic. // // // // Example sending a request using the GetShardIteratorRequest method. // req, resp := client.GetShardIteratorRequest(params) // // err := req.Send() // if err == nil { // resp is now filled // fmt.Println(resp) // } // // See also, https://docs.aws.amazon.com/goto/WebAPI/streams-dynamodb-2012-08-10/GetShardIterator func (c *DynamoDBStreams) GetShardIteratorRequest(input *GetShardIteratorInput) (req *request.Request, output *GetShardIteratorOutput) { op := &request.Operation{ Name: opGetShardIterator, HTTPMethod: "POST", HTTPPath: "/", } if input == nil { input = &GetShardIteratorInput{} } output = &GetShardIteratorOutput{} req = c.newRequest(op, input, output) return } // GetShardIterator API operation for Amazon DynamoDB Streams. // // Returns a shard iterator. A shard iterator provides information about how // to retrieve the stream records from within a shard. Use the shard iterator // in a subsequent GetRecords request to read the stream records from the shard. // // A shard iterator expires 15 minutes after it is returned to the requester. // // Returns awserr.Error for service API and SDK errors. Use runtime type assertions // with awserr.Error's Code and Message methods to get detailed information about // the error. // // See the AWS API reference guide for Amazon DynamoDB Streams's // API operation GetShardIterator for usage and error information. // // Returned Error Codes: // * ErrCodeResourceNotFoundException "ResourceNotFoundException" // The operation tried to access a nonexistent stream. // // * ErrCodeInternalServerError "InternalServerError" // An error occurred on the server side. // // * ErrCodeTrimmedDataAccessException "TrimmedDataAccessException" // The operation attempted to read past the oldest stream record in a shard. // // In DynamoDB Streams, there is a 24 hour limit on data retention. Stream records // whose age exceeds this limit are subject to removal (trimming) from the stream. // You might receive a TrimmedDataAccessException if: // // * You request a shard iterator with a sequence number older than the trim // point (24 hours). // // * You obtain a shard iterator, but before you use the iterator in a GetRecords // request, a stream record in the shard exceeds the 24 hour period and is // trimmed. This causes the iterator to access a record that no longer exists. // // See also, https://docs.aws.amazon.com/goto/WebAPI/streams-dynamodb-2012-08-10/GetShardIterator func (c *DynamoDBStreams) GetShardIterator(input *GetShardIteratorInput) (*GetShardIteratorOutput, error) { req, out := c.GetShardIteratorRequest(input) return out, req.Send() } // GetShardIteratorWithContext is the same as GetShardIterator with the addition of // the ability to pass a context and additional request options. // // See GetShardIterator for details on how to use this API operation. // // The context must be non-nil and will be used for request cancellation. If // the context is nil a panic will occur. In the future the SDK may create // sub-contexts for http.Requests. See https://golang.org/pkg/context/ // for more information on using Contexts. func (c *DynamoDBStreams) GetShardIteratorWithContext(ctx aws.Context, input *GetShardIteratorInput, opts ...request.Option) (*GetShardIteratorOutput, error) { req, out := c.GetShardIteratorRequest(input) req.SetContext(ctx) req.ApplyOptions(opts...) return out, req.Send() } const opListStreams = "ListStreams" // ListStreamsRequest generates a "aws/request.Request" representing the // client's request for the ListStreams operation. The "output" return // value will be populated with the request's response once the request completes // successfully. // // Use "Send" method on the returned Request to send the API call to the service. // the "output" return value is not valid until after Send returns without error. // // See ListStreams for more information on using the ListStreams // API call, and error handling. // // This method is useful when you want to inject custom logic or configuration // into the SDK's request lifecycle. Such as custom headers, or retry logic. // // // // Example sending a request using the ListStreamsRequest method. // req, resp := client.ListStreamsRequest(params) // // err := req.Send() // if err == nil { // resp is now filled // fmt.Println(resp) // } // // See also, https://docs.aws.amazon.com/goto/WebAPI/streams-dynamodb-2012-08-10/ListStreams func (c *DynamoDBStreams) ListStreamsRequest(input *ListStreamsInput) (req *request.Request, output *ListStreamsOutput) { op := &request.Operation{ Name: opListStreams, HTTPMethod: "POST", HTTPPath: "/", } if input == nil { input = &ListStreamsInput{} } output = &ListStreamsOutput{} req = c.newRequest(op, input, output) return } // ListStreams API operation for Amazon DynamoDB Streams. // // Returns an array of stream ARNs associated with the current account and endpoint. // If the TableName parameter is present, then ListStreams will return only // the streams ARNs for that table. // // You can call ListStreams at a maximum rate of 5 times per second. // // Returns awserr.Error for service API and SDK errors. Use runtime type assertions // with awserr.Error's Code and Message methods to get detailed information about // the error. // // See the AWS API reference guide for Amazon DynamoDB Streams's // API operation ListStreams for usage and error information. // // Returned Error Codes: // * ErrCodeResourceNotFoundException "ResourceNotFoundException" // The operation tried to access a nonexistent stream. // // * ErrCodeInternalServerError "InternalServerError" // An error occurred on the server side. // // See also, https://docs.aws.amazon.com/goto/WebAPI/streams-dynamodb-2012-08-10/ListStreams func (c *DynamoDBStreams) ListStreams(input *ListStreamsInput) (*ListStreamsOutput, error) { req, out := c.ListStreamsRequest(input) return out, req.Send() } // ListStreamsWithContext is the same as ListStreams with the addition of // the ability to pass a context and additional request options. // // See ListStreams for details on how to use this API operation. // // The context must be non-nil and will be used for request cancellation. If // the context is nil a panic will occur. In the future the SDK may create // sub-contexts for http.Requests. See https://golang.org/pkg/context/ // for more information on using Contexts. func (c *DynamoDBStreams) ListStreamsWithContext(ctx aws.Context, input *ListStreamsInput, opts ...request.Option) (*ListStreamsOutput, error) { req, out := c.ListStreamsRequest(input) req.SetContext(ctx) req.ApplyOptions(opts...) return out, req.Send() } // Represents the input of a DescribeStream operation. type DescribeStreamInput struct { _ struct{} `type:"structure"` // The shard ID of the first item that this operation will evaluate. Use the // value that was returned for LastEvaluatedShardId in the previous operation. ExclusiveStartShardId *string `min:"28" type:"string"` // The maximum number of shard objects to return. The upper limit is 100. Limit *int64 `min:"1" type:"integer"` // The Amazon Resource Name (ARN) for the stream. // // StreamArn is a required field StreamArn *string `min:"37" type:"string" required:"true"` } // String returns the string representation func (s DescribeStreamInput) String() string { return awsutil.Prettify(s) } // GoString returns the string representation func (s DescribeStreamInput) GoString() string { return s.String() } // Validate inspects the fields of the type to determine if they are valid. func (s *DescribeStreamInput) Validate() error { invalidParams := request.ErrInvalidParams{Context: "DescribeStreamInput"} if s.ExclusiveStartShardId != nil && len(*s.ExclusiveStartShardId) < 28 { invalidParams.Add(request.NewErrParamMinLen("ExclusiveStartShardId", 28)) } if s.Limit != nil && *s.Limit < 1 { invalidParams.Add(request.NewErrParamMinValue("Limit", 1)) } if s.StreamArn == nil { invalidParams.Add(request.NewErrParamRequired("StreamArn")) } if s.StreamArn != nil && len(*s.StreamArn) < 37 { invalidParams.Add(request.NewErrParamMinLen("StreamArn", 37)) } if invalidParams.Len() > 0 { return invalidParams } return nil } // SetExclusiveStartShardId sets the ExclusiveStartShardId field's value. func (s *DescribeStreamInput) SetExclusiveStartShardId(v string) *DescribeStreamInput { s.ExclusiveStartShardId = &v return s } // SetLimit sets the Limit field's value. func (s *DescribeStreamInput) SetLimit(v int64) *DescribeStreamInput { s.Limit = &v return s } // SetStreamArn sets the StreamArn field's value. func (s *DescribeStreamInput) SetStreamArn(v string) *DescribeStreamInput { s.StreamArn = &v return s } // Represents the output of a DescribeStream operation. type DescribeStreamOutput struct { _ struct{} `type:"structure"` // A complete description of the stream, including its creation date and time, // the DynamoDB table associated with the stream, the shard IDs within the stream, // and the beginning and ending sequence numbers of stream records within the // shards. StreamDescription *StreamDescription `type:"structure"` } // String returns the string representation func (s DescribeStreamOutput) String() string { return awsutil.Prettify(s) } // GoString returns the string representation func (s DescribeStreamOutput) GoString() string { return s.String() } // SetStreamDescription sets the StreamDescription field's value. func (s *DescribeStreamOutput) SetStreamDescription(v *StreamDescription) *DescribeStreamOutput { s.StreamDescription = v return s } // Represents the input of a GetRecords operation. type GetRecordsInput struct { _ struct{} `type:"structure"` // The maximum number of records to return from the shard. The upper limit is // 1000. Limit *int64 `min:"1" type:"integer"` // A shard iterator that was retrieved from a previous GetShardIterator operation. // This iterator can be used to access the stream records in this shard. // // ShardIterator is a required field ShardIterator *string `min:"1" type:"string" required:"true"` } // String returns the string representation func (s GetRecordsInput) String() string { return awsutil.Prettify(s) } // GoString returns the string representation func (s GetRecordsInput) GoString() string { return s.String() } // Validate inspects the fields of the type to determine if they are valid. func (s *GetRecordsInput) Validate() error { invalidParams := request.ErrInvalidParams{Context: "GetRecordsInput"} if s.Limit != nil && *s.Limit < 1 { invalidParams.Add(request.NewErrParamMinValue("Limit", 1)) } if s.ShardIterator == nil { invalidParams.Add(request.NewErrParamRequired("ShardIterator")) } if s.ShardIterator != nil && len(*s.ShardIterator) < 1 { invalidParams.Add(request.NewErrParamMinLen("ShardIterator", 1)) } if invalidParams.Len() > 0 { return invalidParams } return nil } // SetLimit sets the Limit field's value. func (s *GetRecordsInput) SetLimit(v int64) *GetRecordsInput { s.Limit = &v return s } // SetShardIterator sets the ShardIterator field's value. func (s *GetRecordsInput) SetShardIterator(v string) *GetRecordsInput { s.ShardIterator = &v return s } // Represents the output of a GetRecords operation. type GetRecordsOutput struct { _ struct{} `type:"structure"` // The next position in the shard from which to start sequentially reading stream // records. If set to null, the shard has been closed and the requested iterator // will not return any more data. NextShardIterator *string `min:"1" type:"string"` // The stream records from the shard, which were retrieved using the shard iterator. Records []*Record `type:"list"` } // String returns the string representation func (s GetRecordsOutput) String() string { return awsutil.Prettify(s) } // GoString returns the string representation func (s GetRecordsOutput) GoString() string { return s.String() } // SetNextShardIterator sets the NextShardIterator field's value. func (s *GetRecordsOutput) SetNextShardIterator(v string) *GetRecordsOutput { s.NextShardIterator = &v return s } // SetRecords sets the Records field's value. func (s *GetRecordsOutput) SetRecords(v []*Record) *GetRecordsOutput { s.Records = v return s } // Represents the input of a GetShardIterator operation. type GetShardIteratorInput struct { _ struct{} `type:"structure"` // The sequence number of a stream record in the shard from which to start reading. SequenceNumber *string `min:"21" type:"string"` // The identifier of the shard. The iterator will be returned for this shard // ID. // // ShardId is a required field ShardId *string `min:"28" type:"string" required:"true"` // Determines how the shard iterator is used to start reading stream records // from the shard: // // * AT_SEQUENCE_NUMBER - Start reading exactly from the position denoted // by a specific sequence number. // // * AFTER_SEQUENCE_NUMBER - Start reading right after the position denoted // by a specific sequence number. // // * TRIM_HORIZON - Start reading at the last (untrimmed) stream record, // which is the oldest record in the shard. In DynamoDB Streams, there is // a 24 hour limit on data retention. Stream records whose age exceeds this // limit are subject to removal (trimming) from the stream. // // * LATEST - Start reading just after the most recent stream record in the // shard, so that you always read the most recent data in the shard. // // ShardIteratorType is a required field ShardIteratorType *string `type:"string" required:"true" enum:"ShardIteratorType"` // The Amazon Resource Name (ARN) for the stream. // // StreamArn is a required field StreamArn *string `min:"37" type:"string" required:"true"` } // String returns the string representation func (s GetShardIteratorInput) String() string { return awsutil.Prettify(s) } // GoString returns the string representation func (s GetShardIteratorInput) GoString() string { return s.String() } // Validate inspects the fields of the type to determine if they are valid. func (s *GetShardIteratorInput) Validate() error { invalidParams := request.ErrInvalidParams{Context: "GetShardIteratorInput"} if s.SequenceNumber != nil && len(*s.SequenceNumber) < 21 { invalidParams.Add(request.NewErrParamMinLen("SequenceNumber", 21)) } if s.ShardId == nil { invalidParams.Add(request.NewErrParamRequired("ShardId")) } if s.ShardId != nil && len(*s.ShardId) < 28 { invalidParams.Add(request.NewErrParamMinLen("ShardId", 28)) } if s.ShardIteratorType == nil { invalidParams.Add(request.NewErrParamRequired("ShardIteratorType")) } if s.StreamArn == nil { invalidParams.Add(request.NewErrParamRequired("StreamArn")) } if s.StreamArn != nil && len(*s.StreamArn) < 37 { invalidParams.Add(request.NewErrParamMinLen("StreamArn", 37)) } if invalidParams.Len() > 0 { return invalidParams } return nil } // SetSequenceNumber sets the SequenceNumber field's value. func (s *GetShardIteratorInput) SetSequenceNumber(v string) *GetShardIteratorInput { s.SequenceNumber = &v return s } // SetShardId sets the ShardId field's value. func (s *GetShardIteratorInput) SetShardId(v string) *GetShardIteratorInput { s.ShardId = &v return s } // SetShardIteratorType sets the ShardIteratorType field's value. func (s *GetShardIteratorInput) SetShardIteratorType(v string) *GetShardIteratorInput { s.ShardIteratorType = &v return s } // SetStreamArn sets the StreamArn field's value. func (s *GetShardIteratorInput) SetStreamArn(v string) *GetShardIteratorInput { s.StreamArn = &v return s } // Represents the output of a GetShardIterator operation. type GetShardIteratorOutput struct { _ struct{} `type:"structure"` // The position in the shard from which to start reading stream records sequentially. // A shard iterator specifies this position using the sequence number of a stream // record in a shard. ShardIterator *string `min:"1" type:"string"` } // String returns the string representation func (s GetShardIteratorOutput) String() string { return awsutil.Prettify(s) } // GoString returns the string representation func (s GetShardIteratorOutput) GoString() string { return s.String() } // SetShardIterator sets the ShardIterator field's value. func (s *GetShardIteratorOutput) SetShardIterator(v string) *GetShardIteratorOutput { s.ShardIterator = &v return s } // Contains details about the type of identity that made the request. type Identity struct { _ struct{} `type:"structure"` // A unique identifier for the entity that made the call. For Time To Live, // the principalId is "dynamodb.amazonaws.com". PrincipalId *string `type:"string"` // The type of the identity. For Time To Live, the type is "Service". Type *string `type:"string"` } // String returns the string representation func (s Identity) String() string { return awsutil.Prettify(s) } // GoString returns the string representation func (s Identity) GoString() string { return s.String() } // SetPrincipalId sets the PrincipalId field's value. func (s *Identity) SetPrincipalId(v string) *Identity { s.PrincipalId = &v return s } // SetType sets the Type field's value. func (s *Identity) SetType(v string) *Identity { s.Type = &v return s } // Represents the input of a ListStreams operation. type ListStreamsInput struct { _ struct{} `type:"structure"` // The ARN (Amazon Resource Name) of the first item that this operation will // evaluate. Use the value that was returned for LastEvaluatedStreamArn in the // previous operation. ExclusiveStartStreamArn *string `min:"37" type:"string"` // The maximum number of streams to return. The upper limit is 100. Limit *int64 `min:"1" type:"integer"` // If this parameter is provided, then only the streams associated with this // table name are returned. TableName *string `min:"3" type:"string"` } // String returns the string representation func (s ListStreamsInput) String() string { return awsutil.Prettify(s) } // GoString returns the string representation func (s ListStreamsInput) GoString() string { return s.String() } // Validate inspects the fields of the type to determine if they are valid. func (s *ListStreamsInput) Validate() error { invalidParams := request.ErrInvalidParams{Context: "ListStreamsInput"} if s.ExclusiveStartStreamArn != nil && len(*s.ExclusiveStartStreamArn) < 37 { invalidParams.Add(request.NewErrParamMinLen("ExclusiveStartStreamArn", 37)) } if s.Limit != nil && *s.Limit < 1 { invalidParams.Add(request.NewErrParamMinValue("Limit", 1)) } if s.TableName != nil && len(*s.TableName) < 3 { invalidParams.Add(request.NewErrParamMinLen("TableName", 3)) } if invalidParams.Len() > 0 { return invalidParams } return nil } // SetExclusiveStartStreamArn sets the ExclusiveStartStreamArn field's value. func (s *ListStreamsInput) SetExclusiveStartStreamArn(v string) *ListStreamsInput { s.ExclusiveStartStreamArn = &v return s } // SetLimit sets the Limit field's value. func (s *ListStreamsInput) SetLimit(v int64) *ListStreamsInput { s.Limit = &v return s } // SetTableName sets the TableName field's value. func (s *ListStreamsInput) SetTableName(v string) *ListStreamsInput { s.TableName = &v return s } // Represents the output of a ListStreams operation. type ListStreamsOutput struct { _ struct{} `type:"structure"` // The stream ARN of the item where the operation stopped, inclusive of the // previous result set. Use this value to start a new operation, excluding this // value in the new request. // // If LastEvaluatedStreamArn is empty, then the "last page" of results has been // processed and there is no more data to be retrieved. // // If LastEvaluatedStreamArn is not empty, it does not necessarily mean that // there is more data in the result set. The only way to know when you have // reached the end of the result set is when LastEvaluatedStreamArn is empty. LastEvaluatedStreamArn *string `min:"37" type:"string"` // A list of stream descriptors associated with the current account and endpoint. Streams []*Stream `type:"list"` } // String returns the string representation func (s ListStreamsOutput) String() string { return awsutil.Prettify(s) } // GoString returns the string representation func (s ListStreamsOutput) GoString() string { return s.String() } // SetLastEvaluatedStreamArn sets the LastEvaluatedStreamArn field's value. func (s *ListStreamsOutput) SetLastEvaluatedStreamArn(v string) *ListStreamsOutput { s.LastEvaluatedStreamArn = &v return s } // SetStreams sets the Streams field's value. func (s *ListStreamsOutput) SetStreams(v []*Stream) *ListStreamsOutput { s.Streams = v return s } // A description of a unique event within a stream. type Record struct { _ struct{} `type:"structure"` // The region in which the GetRecords request was received. AwsRegion *string `locationName:"awsRegion" type:"string"` // The main body of the stream record, containing all of the DynamoDB-specific // fields. Dynamodb *StreamRecord `locationName:"dynamodb" type:"structure"` // A globally unique identifier for the event that was recorded in this stream // record. EventID *string `locationName:"eventID" type:"string"` // The type of data modification that was performed on the DynamoDB table: // // * INSERT - a new item was added to the table. // // * MODIFY - one or more of an existing item's attributes were modified. // // * REMOVE - the item was deleted from the table EventName *string `locationName:"eventName" type:"string" enum:"OperationType"` // The AWS service from which the stream record originated. For DynamoDB Streams, // this is aws:dynamodb. EventSource *string `locationName:"eventSource" type:"string"` // The version number of the stream record format. This number is updated whenever // the structure of Record is modified. // // Client applications must not assume that eventVersion will remain at a particular // value, as this number is subject to change at any time. In general, eventVersion // will only increase as the low-level DynamoDB Streams API evolves. EventVersion *string `locationName:"eventVersion" type:"string"` // Items that are deleted by the Time to Live process after expiration have // the following fields: // // * Records[].userIdentity.type // // "Service" // // * Records[].userIdentity.principalId // // "dynamodb.amazonaws.com" UserIdentity *Identity `locationName:"userIdentity" type:"structure"` } // String returns the string representation func (s Record) String() string { return awsutil.Prettify(s) } // GoString returns the string representation func (s Record) GoString() string { return s.String() } // SetAwsRegion sets the AwsRegion field's value. func (s *Record) SetAwsRegion(v string) *Record { s.AwsRegion = &v return s } // SetDynamodb sets the Dynamodb field's value. func (s *Record) SetDynamodb(v *StreamRecord) *Record { s.Dynamodb = v return s } // SetEventID sets the EventID field's value. func (s *Record) SetEventID(v string) *Record { s.EventID = &v return s } // SetEventName sets the EventName field's value. func (s *Record) SetEventName(v string) *Record { s.EventName = &v return s } // SetEventSource sets the EventSource field's value. func (s *Record) SetEventSource(v string) *Record { s.EventSource = &v return s } // SetEventVersion sets the EventVersion field's value. func (s *Record) SetEventVersion(v string) *Record { s.EventVersion = &v return s } // SetUserIdentity sets the UserIdentity field's value. func (s *Record) SetUserIdentity(v *Identity) *Record { s.UserIdentity = v return s } // The beginning and ending sequence numbers for the stream records contained // within a shard. type SequenceNumberRange struct { _ struct{} `type:"structure"` // The last sequence number. EndingSequenceNumber *string `min:"21" type:"string"` // The first sequence number. StartingSequenceNumber *string `min:"21" type:"string"` } // String returns the string representation func (s SequenceNumberRange) String() string { return awsutil.Prettify(s) } // GoString returns the string representation func (s SequenceNumberRange) GoString() string { return s.String() } // SetEndingSequenceNumber sets the EndingSequenceNumber field's value. func (s *SequenceNumberRange) SetEndingSequenceNumber(v string) *SequenceNumberRange { s.EndingSequenceNumber = &v return s } // SetStartingSequenceNumber sets the StartingSequenceNumber field's value. func (s *SequenceNumberRange) SetStartingSequenceNumber(v string) *SequenceNumberRange { s.StartingSequenceNumber = &v return s } // A uniquely identified group of stream records within a stream. type Shard struct { _ struct{} `type:"structure"` // The shard ID of the current shard's parent. ParentShardId *string `min:"28" type:"string"` // The range of possible sequence numbers for the shard. SequenceNumberRange *SequenceNumberRange `type:"structure"` // The system-generated identifier for this shard. ShardId *string `min:"28" type:"string"` } // String returns the string representation func (s Shard) String() string { return awsutil.Prettify(s) } // GoString returns the string representation func (s Shard) GoString() string { return s.String() } // SetParentShardId sets the ParentShardId field's value. func (s *Shard) SetParentShardId(v string) *Shard { s.ParentShardId = &v return s } // SetSequenceNumberRange sets the SequenceNumberRange field's value. func (s *Shard) SetSequenceNumberRange(v *SequenceNumberRange) *Shard { s.SequenceNumberRange = v return s } // SetShardId sets the ShardId field's value. func (s *Shard) SetShardId(v string) *Shard { s.ShardId = &v return s } // Represents all of the data describing a particular stream. type Stream struct { _ struct{} `type:"structure"` // The Amazon Resource Name (ARN) for the stream. StreamArn *string `min:"37" type:"string"` // A timestamp, in ISO 8601 format, for this stream. // // Note that LatestStreamLabel is not a unique identifier for the stream, because // it is possible that a stream from another table might have the same timestamp. // However, the combination of the following three elements is guaranteed to // be unique: // // * the AWS customer ID. // // * the table name // // * the StreamLabel StreamLabel *string `type:"string"` // The DynamoDB table with which the stream is associated. TableName *string `min:"3" type:"string"` } // String returns the string representation func (s Stream) String() string { return awsutil.Prettify(s) } // GoString returns the string representation func (s Stream) GoString() string { return s.String() } // SetStreamArn sets the StreamArn field's value. func (s *Stream) SetStreamArn(v string) *Stream { s.StreamArn = &v return s } // SetStreamLabel sets the StreamLabel field's value. func (s *Stream) SetStreamLabel(v string) *Stream { s.StreamLabel = &v return s } // SetTableName sets the TableName field's value. func (s *Stream) SetTableName(v string) *Stream { s.TableName = &v return s } // Represents all of the data describing a particular stream. type StreamDescription struct { _ struct{} `type:"structure"` // The date and time when the request to create this stream was issued. CreationRequestDateTime *time.Time `type:"timestamp"` // The key attribute(s) of the stream's DynamoDB table. KeySchema []*dynamodb.KeySchemaElement `min:"1" type:"list"` // The shard ID of the item where the operation stopped, inclusive of the previous // result set. Use this value to start a new operation, excluding this value // in the new request. // // If LastEvaluatedShardId is empty, then the "last page" of results has been // processed and there is currently no more data to be retrieved. // // If LastEvaluatedShardId is not empty, it does not necessarily mean that there // is more data in the result set. The only way to know when you have reached // the end of the result set is when LastEvaluatedShardId is empty. LastEvaluatedShardId *string `min:"28" type:"string"` // The shards that comprise the stream. Shards []*Shard `type:"list"` // The Amazon Resource Name (ARN) for the stream. StreamArn *string `min:"37" type:"string"` // A timestamp, in ISO 8601 format, for this stream. // // Note that LatestStreamLabel is not a unique identifier for the stream, because // it is possible that a stream from another table might have the same timestamp. // However, the combination of the following three elements is guaranteed to // be unique: // // * the AWS customer ID. // // * the table name // // * the StreamLabel StreamLabel *string `type:"string"` // Indicates the current status of the stream: // // * ENABLING - Streams is currently being enabled on the DynamoDB table. // // * ENABLED - the stream is enabled. // // * DISABLING - Streams is currently being disabled on the DynamoDB table. // // * DISABLED - the stream is disabled. StreamStatus *string `type:"string" enum:"StreamStatus"` // Indicates the format of the records within this stream: // // * KEYS_ONLY - only the key attributes of items that were modified in the // DynamoDB table. // // * NEW_IMAGE - entire items from the table, as they appeared after they // were modified. // // * OLD_IMAGE - entire items from the table, as they appeared before they // were modified. // // * NEW_AND_OLD_IMAGES - both the new and the old images of the items from // the table. StreamViewType *string `type:"string" enum:"StreamViewType"` // The DynamoDB table with which the stream is associated. TableName *string `min:"3" type:"string"` } // String returns the string representation func (s StreamDescription) String() string { return awsutil.Prettify(s) } // GoString returns the string representation func (s StreamDescription) GoString() string { return s.String() } // SetCreationRequestDateTime sets the CreationRequestDateTime field's value. func (s *StreamDescription) SetCreationRequestDateTime(v time.Time) *StreamDescription { s.CreationRequestDateTime = &v return s } // SetKeySchema sets the KeySchema field's value. func (s *StreamDescription) SetKeySchema(v []*dynamodb.KeySchemaElement) *StreamDescription { s.KeySchema = v return s } // SetLastEvaluatedShardId sets the LastEvaluatedShardId field's value. func (s *StreamDescription) SetLastEvaluatedShardId(v string) *StreamDescription { s.LastEvaluatedShardId = &v return s } // SetShards sets the Shards field's value. func (s *StreamDescription) SetShards(v []*Shard) *StreamDescription { s.Shards = v return s } // SetStreamArn sets the StreamArn field's value. func (s *StreamDescription) SetStreamArn(v string) *StreamDescription { s.StreamArn = &v return s } // SetStreamLabel sets the StreamLabel field's value. func (s *StreamDescription) SetStreamLabel(v string) *StreamDescription { s.StreamLabel = &v return s } // SetStreamStatus sets the StreamStatus field's value. func (s *StreamDescription) SetStreamStatus(v string) *StreamDescription { s.StreamStatus = &v return s } // SetStreamViewType sets the StreamViewType field's value. func (s *StreamDescription) SetStreamViewType(v string) *StreamDescription { s.StreamViewType = &v return s } // SetTableName sets the TableName field's value. func (s *StreamDescription) SetTableName(v string) *StreamDescription { s.TableName = &v return s } // A description of a single data modification that was performed on an item // in a DynamoDB table. type StreamRecord struct { _ struct{} `type:"structure"` // The approximate date and time when the stream record was created, in UNIX // epoch time (http://www.epochconverter.com/) format. ApproximateCreationDateTime *time.Time `type:"timestamp"` // The primary key attribute(s) for the DynamoDB item that was modified. Keys map[string]*dynamodb.AttributeValue `type:"map"` // The item in the DynamoDB table as it appeared after it was modified. NewImage map[string]*dynamodb.AttributeValue `type:"map"` // The item in the DynamoDB table as it appeared before it was modified. OldImage map[string]*dynamodb.AttributeValue `type:"map"` // The sequence number of the stream record. SequenceNumber *string `min:"21" type:"string"` // The size of the stream record, in bytes. SizeBytes *int64 `min:"1" type:"long"` // The type of data from the modified DynamoDB item that was captured in this // stream record: // // * KEYS_ONLY - only the key attributes of the modified item. // // * NEW_IMAGE - the entire item, as it appeared after it was modified. // // * OLD_IMAGE - the entire item, as it appeared before it was modified. // // * NEW_AND_OLD_IMAGES - both the new and the old item images of the item. StreamViewType *string `type:"string" enum:"StreamViewType"` } // String returns the string representation func (s StreamRecord) String() string { return awsutil.Prettify(s) } // GoString returns the string representation func (s StreamRecord) GoString() string { return s.String() } // SetApproximateCreationDateTime sets the ApproximateCreationDateTime field's value. func (s *StreamRecord) SetApproximateCreationDateTime(v time.Time) *StreamRecord { s.ApproximateCreationDateTime = &v return s } // SetKeys sets the Keys field's value. func (s *StreamRecord) SetKeys(v map[string]*dynamodb.AttributeValue) *StreamRecord { s.Keys = v return s } // SetNewImage sets the NewImage field's value. func (s *StreamRecord) SetNewImage(v map[string]*dynamodb.AttributeValue) *StreamRecord { s.NewImage = v return s } // SetOldImage sets the OldImage field's value. func (s *StreamRecord) SetOldImage(v map[string]*dynamodb.AttributeValue) *StreamRecord { s.OldImage = v return s } // SetSequenceNumber sets the SequenceNumber field's value. func (s *StreamRecord) SetSequenceNumber(v string) *StreamRecord { s.SequenceNumber = &v return s } // SetSizeBytes sets the SizeBytes field's value. func (s *StreamRecord) SetSizeBytes(v int64) *StreamRecord { s.SizeBytes = &v return s } // SetStreamViewType sets the StreamViewType field's value. func (s *StreamRecord) SetStreamViewType(v string) *StreamRecord { s.StreamViewType = &v return s } const ( // KeyTypeHash is a KeyType enum value KeyTypeHash = "HASH" // KeyTypeRange is a KeyType enum value KeyTypeRange = "RANGE" ) const ( // OperationTypeInsert is a OperationType enum value OperationTypeInsert = "INSERT" // OperationTypeModify is a OperationType enum value OperationTypeModify = "MODIFY" // OperationTypeRemove is a OperationType enum value OperationTypeRemove = "REMOVE" ) const ( // ShardIteratorTypeTrimHorizon is a ShardIteratorType enum value ShardIteratorTypeTrimHorizon = "TRIM_HORIZON" // ShardIteratorTypeLatest is a ShardIteratorType enum value ShardIteratorTypeLatest = "LATEST" // ShardIteratorTypeAtSequenceNumber is a ShardIteratorType enum value ShardIteratorTypeAtSequenceNumber = "AT_SEQUENCE_NUMBER" // ShardIteratorTypeAfterSequenceNumber is a ShardIteratorType enum value ShardIteratorTypeAfterSequenceNumber = "AFTER_SEQUENCE_NUMBER" ) const ( // StreamStatusEnabling is a StreamStatus enum value StreamStatusEnabling = "ENABLING" // StreamStatusEnabled is a StreamStatus enum value StreamStatusEnabled = "ENABLED" // StreamStatusDisabling is a StreamStatus enum value StreamStatusDisabling = "DISABLING" // StreamStatusDisabled is a StreamStatus enum value StreamStatusDisabled = "DISABLED" ) const ( // StreamViewTypeNewImage is a StreamViewType enum value StreamViewTypeNewImage = "NEW_IMAGE" // StreamViewTypeOldImage is a StreamViewType enum value StreamViewTypeOldImage = "OLD_IMAGE" // StreamViewTypeNewAndOldImages is a StreamViewType enum value StreamViewTypeNewAndOldImages = "NEW_AND_OLD_IMAGES" // StreamViewTypeKeysOnly is a StreamViewType enum value StreamViewTypeKeysOnly = "KEYS_ONLY" )