Help us shape the future of Go! Take the 2026 Go Developer Survey

timestreamquery

package
v1.8.3 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Oct 20, 2026 License: MIT Imports: 24 Imported by: 0

README

Timestream Query

Parity grade: A · SDK aws-sdk-go-v2/service/timestreamquery@v1.39.4 · last audited 2026-10-07 (a98a164d)

Coverage

Metric Value
PARITY entries audited 12 (12 ok)
Feature families 2 (1 ok, 1 deferred)
Known gaps none
Structural gaps (can't be emulated) 2
Deferred items 1
Resource leaks clean
Structural gaps

These do not block an A grade — no implementation could produce real data here because the underlying data source cannot exist in an emulator.

  • CreateScheduledQuery KmsKeyId is stored and echoed, but there is no at-rest encryption layer to apply it to.
  • ScheduledQueryDescription.RecentlyFailedRuns and ScheduledQueryRunSummary.QueryInsightsResponse: ExecuteScheduledQuery runs no real query engine, so no run can fail or produce insights; both fields are optional and omitted.
Deferred
  • Query/CancelQuery against genuinely long-running or multi-page real query execution semantics -- this emulator's Query is synchronous and instantaneous (matches the mock-data-source design already documented in QueryWithOptions), so QueryExecutionException (a real error type for query engine failures) is never returned. Acceptable per the documented deterministic-mock design; revisit only if a real backing data source is added.

More

Documentation

Index

Constants

View Source
const (
	ScalarTypeBigint                = "BIGINT"
	ScalarTypeBoolean               = "BOOLEAN"
	ScalarTypeDate                  = "DATE"
	ScalarTypeDouble                = "DOUBLE"
	ScalarTypeIntervalDayToSecond   = "INTERVAL_DAY_TO_SECOND"
	ScalarTypeIntervalYearToMonth   = "INTERVAL_YEAR_TO_MONTH"
	ScalarTypeTime                  = "TIME"
	ScalarTypeTimestamp             = "TIMESTAMP"
	ScalarTypeTimestampWithTimezone = "TIMESTAMP_WITH_TIMEZONE"
	ScalarTypeUnknown               = "UNKNOWN"
	ScalarTypeVarchar               = "VARCHAR"
)

Variables

View Source
var (
	// ErrNotFound is returned when a requested resource does not exist.
	ErrNotFound = errors.New("ResourceNotFoundException")
	// ErrAlreadyExists is returned when a resource already exists.
	ErrAlreadyExists = errors.New("ConflictException")
	// ErrValidation is returned when request input fails validation.
	ErrValidation = errors.New("ValidationException")
)
View Source
var ErrNilAppContext = errors.New("timestreamquery: nil app context")

ErrNilAppContext is returned when Init is called with a nil AppContext.

View Source
var ErrUnknownOperation = errors.New("unknown operation")

ErrUnknownOperation is returned when an unrecognized operation is requested.

Functions

This section is empty.

Types

type AccountSettings

type AccountSettings struct {
	MaxQueryTCU       *int32
	QueryCompute      *QueryCompute
	QueryPricingModel string
}

AccountSettings holds the account-level settings for Timestream Query.

type AccountSettingsNotificationConfiguration added in v1.2.0

type AccountSettingsNotificationConfiguration struct {
	SnsConfiguration *SnsConfiguration `json:"SnsConfiguration,omitempty"`
	RoleArn          string            `json:"RoleArn,omitempty"`
}

AccountSettingsNotificationConfiguration mirrors types.AccountSettingsNotificationConfiguration: settings for notifications sent whenever the provisioned-capacity settings are modified. Distinct from the scheduled-query NotificationConfiguration (see scheduledQueryToView), which shares the same nested SnsConfiguration shape but is used for a different resource.

type Catalog

type Catalog interface {
	DatabaseExists(region, database string) bool
	TableExists(region, database, table string) bool
}

Catalog reports which Timestream Write databases and tables exist in a region.

type ColumnInfo

type ColumnInfo struct {
	Name string     `json:"Name,omitempty"`
	Type ColumnType `json:"Type"`
}

ColumnInfo describes one column in a Timestream Query result set.

type ColumnType

type ColumnType struct {
	ArrayColumnInfo                  *ColumnInfo  `json:"ArrayColumnInfo,omitempty"`
	TimeSeriesMeasureValueColumnInfo *ColumnInfo  `json:"TimeSeriesMeasureValueColumnInfo,omitempty"`
	ScalarType                       string       `json:"ScalarType,omitempty"`
	RowColumnInfo                    []ColumnInfo `json:"RowColumnInfo,omitempty"`
}

ColumnType describes the type of a Timestream Query column. For scalar columns only ScalarType is set; for complex types the sub- fields carry the nested ColumnInfo.

type Datum

type Datum struct {
	ScalarValue     *string               `json:"ScalarValue,omitempty"`
	NullValue       *bool                 `json:"NullValue,omitempty"`
	ArrayValue      []Datum               `json:"ArrayValue,omitempty"`
	RowValue        *Row                  `json:"RowValue,omitempty"`
	TimeSeriesValue []TimeSeriesDataPoint `json:"TimeSeriesValue,omitempty"`
}

Datum is the AWS Timestream Query typed union cell. Exactly one of the pointer fields is non-nil for any given cell.

func NullDatum

func NullDatum() Datum

NullDatum returns a Datum representing a SQL NULL.

func ScalarDatum

func ScalarDatum(v string) Datum

ScalarDatum returns a Datum wrapping a scalar string value.

type DimensionMapping added in v1.5.0

type DimensionMapping struct {
	Name               string `json:"Name"`
	DimensionValueType string `json:"DimensionValueType"`
}

DimensionMapping maps a query result column to a dimension in the destination table (types.DimensionMapping on the wire).

type ErrorReportLocation

type ErrorReportLocation struct {
	S3ReportLocation *S3ReportLocation `json:"S3ReportLocation,omitempty"`
}

ErrorReportLocation holds the S3 error report location for a scheduled query run.

type ExecutionStats

type ExecutionStats struct {
	ExecutionTimeInMillis  int64 `json:"ExecutionTimeInMillis,omitempty"`
	DataWrites             int64 `json:"DataWrites,omitempty"`
	BytesMetered           int64 `json:"BytesMetered,omitempty"`
	CumulativeBytesScanned int64 `json:"CumulativeBytesScanned,omitempty"`
	QueryResultRows        int64 `json:"QueryResultRows,omitempty"`
	RecordsIngested        int64 `json:"RecordsIngested,omitempty"`
}

ExecutionStats holds statistics from a scheduled query execution. The wire field is "ExecutionTimeInMillis" (no trailing "ecs") per the real aws-sdk-go-v2 deserializer (types.ExecutionStats / awsAwsjson10_deserializeDocumentExecutionStats).

type Handler

type Handler struct {
	Backend StorageBackend
	// contains filtered or unexported fields
}

Handler is the Echo HTTP handler for the Timestream Query service.

func NewHandler

func NewHandler(backend StorageBackend) *Handler

NewHandler creates a new Timestream Query handler.

func (*Handler) ChaosOperations

func (h *Handler) ChaosOperations() []string

ChaosOperations returns the operations subject to chaos injection.

func (*Handler) ChaosRegions

func (h *Handler) ChaosRegions() []string

ChaosRegions returns the default region for chaos injection.

func (*Handler) ChaosServiceName

func (h *Handler) ChaosServiceName() string

ChaosServiceName returns the service name for chaos injection.

func (*Handler) ExtractOperation

func (h *Handler) ExtractOperation(c *echo.Context) string

ExtractOperation returns the operation name from the request.

func (*Handler) ExtractResource

func (h *Handler) ExtractResource(c *echo.Context) string

ExtractResource returns the ARN or name from the request body. It checks ScheduledQueryArn, ResourceARN, Arn, and Name fields in order.

func (*Handler) GetSupportedOperations

func (h *Handler) GetSupportedOperations() []string

GetSupportedOperations returns all supported Timestream Query operations.

func (*Handler) Handler

func (h *Handler) Handler() echo.HandlerFunc

Handler returns the Echo handler function for Timestream Query requests.

func (*Handler) MatchPriority

func (h *Handler) MatchPriority() int

MatchPriority returns the matching priority.

func (*Handler) Name

func (h *Handler) Name() string

Name returns the handler name.

func (*Handler) Reset

func (h *Handler) Reset()

Reset clears handler state, delegating to the backend if it supports Reset.

func (*Handler) Restore

func (h *Handler) Restore(ctx context.Context, data []byte) error

Restore implements persistence.Persistable by delegating to the backend.

func (*Handler) RouteMatcher

func (h *Handler) RouteMatcher() service.Matcher

RouteMatcher returns a matcher that identifies Timestream Query requests. It only matches operations explicitly supported by this handler to avoid intercepting operations belonging to other Timestream services (e.g. TimestreamWrite) that share the same X-Amz-Target prefix. Tag operations (TagResource, UntagResource, ListTagsForResource) are intentionally excluded: they are routed to the TimestreamWrite handler which provides a single unified tag store for all Timestream resource types.

func (*Handler) Snapshot

func (h *Handler) Snapshot(ctx context.Context) []byte

Snapshot implements persistence.Persistable by delegating to the backend.

type InMemoryBackend

type InMemoryBackend struct {
	// contains filtered or unexported fields
}

InMemoryBackend is the in-memory backend for the Timestream Query service.

func NewInMemoryBackend

func NewInMemoryBackend(accountID, region string) *InMemoryBackend

NewInMemoryBackend creates a new in-memory Timestream Query backend.

func (*InMemoryBackend) AccountID

func (b *InMemoryBackend) AccountID() string

AccountID returns the account ID for the backend.

func (*InMemoryBackend) AddScheduledQueryInternal

func (b *InMemoryBackend) AddScheduledQueryInternal(sq *ScheduledQuery)

AddScheduledQueryInternal is a test-only seed helper that stores a scheduled query directly, bypassing normal validation. It is used to pre-populate backend state in tests.

func (*InMemoryBackend) CancelQuery

func (b *InMemoryBackend) CancelQuery(_ context.Context, queryID string) error

CancelQuery cancels a running query (simulated no-op if not found). CancelQuery is documented as idempotent: cancelling a query that has already been cancelled must still succeed (with a CancellationMessage), not error, so the result is marked cancelled in place rather than deleted; an unknown QueryId still returns ValidationException (gap #9). ctx is accepted for interface consistency; query results are not region-isolated.

func (*InMemoryBackend) CreateScheduledQuery

func (b *InMemoryBackend) CreateScheduledQuery(
	ctx context.Context,
	name, queryString, scheduleExpression, executionRoleArn,
	notificationTopicArn, errorReportS3BucketName, targetDatabase, targetTable, clientToken, kmsKeyID string,
	errorReportEncryptionOption, errorReportObjectKeyPrefix string,
	tags map[string]string,
	targetDetail *ScheduledQueryTargetDetail,
) (*ScheduledQuery, error)

CreateScheduledQuery creates a new scheduled query.

clientToken supports the idempotency contract documented on CreateScheduledQueryInput.ClientToken: the aws-sdk-go-v2 client auto-generates a ClientToken on every call via its idempotency-token-autofill middleware, so a retried request (e.g. after a network blip following a successful create) must replay the original success rather than surface a spurious "already exists" conflict.

func (*InMemoryBackend) DeleteScheduledQuery

func (b *InMemoryBackend) DeleteScheduledQuery(_ context.Context, arnStr string) error

DeleteScheduledQuery deletes a scheduled query by ARN. The ARN self-encodes the region, so no separate region resolution is needed. Any tags CreateScheduledQuery mirrored into the shared TimestreamWrite tag store (tagWriteBackend) are removed too, so a deleted ARN doesn't leave ghost tags behind for a later ListTagsForResource to surface.

func (*InMemoryBackend) DescribeAccountSettings

func (b *InMemoryBackend) DescribeAccountSettings(ctx context.Context) AccountSettings

DescribeAccountSettings returns the current account-level settings for the request region.

func (*InMemoryBackend) DescribeScheduledQuery

func (b *InMemoryBackend) DescribeScheduledQuery(_ context.Context, arnStr string) (*ScheduledQuery, error)

DescribeScheduledQuery returns details of a scheduled query by ARN. The ARN self-encodes the region, so no separate region resolution is needed.

func (*InMemoryBackend) ExecuteScheduledQuery

func (b *InMemoryBackend) ExecuteScheduledQuery(_ context.Context, arnStr string, invocationTime time.Time) error

ExecuteScheduledQuery marks a scheduled query as executed at the given invocation time. The ARN self-encodes the region, so no separate region resolution is needed.

func (*InMemoryBackend) ListScheduledQueries

func (b *InMemoryBackend) ListScheduledQueries(ctx context.Context) []ScheduledQuerySummary

ListScheduledQueries returns all scheduled queries for the request region sorted by name.

func (*InMemoryBackend) ListScheduledQueriesEnriched

func (b *InMemoryBackend) ListScheduledQueriesEnriched(
	ctx context.Context, nextToken string, maxResults int32,
) ListScheduledQueriesResult

ListScheduledQueriesEnriched returns paged enriched scheduled query summaries for the request region.

func (*InMemoryBackend) ListScheduledQueriesFull

func (b *InMemoryBackend) ListScheduledQueriesFull(ctx context.Context) []*ScheduledQuery

ListScheduledQueriesFull returns all scheduled queries for the request region with full details, sorted by name.

func (*InMemoryBackend) ListTagsForResource

func (b *InMemoryBackend) ListTagsForResource(_ context.Context, arnStr string) ([]map[string]string, error)

ListTagsForResource returns tags for a resource identified by its ARN. The ARN self-encodes the region, so no separate region resolution is needed.

func (*InMemoryBackend) PrepareQuery

func (b *InMemoryBackend) PrepareQuery(
	ctx context.Context, queryString string, _ bool,
) (*PrepareQueryResult, error)

PrepareQuery validates a query string and returns its column and parameter metadata. It infers columns from the SELECT projection and parameters from ? markers.

Real Timestream documents ValidateOnly=true as the only supported mode for this operation, and PrepareQueryOutput.Columns/Parameters are both required (non-optional) response fields regardless of ValidateOnly -- they are the entire point of the call (describing a query's shape before running it as a scheduled query). validateOnly is accepted for wire-compatibility with the input shape but does not change the response: an earlier version of this method returned an empty Columns/Parameters list whenever ValidateOnly was true, which discarded the inferred result for the one mode real clients actually use. ctx is accepted for interface consistency; PrepareQuery is stateless.

func (*InMemoryBackend) Query

func (b *InMemoryBackend) Query(_ context.Context, queryString string) *QueryResult

Query runs a query and returns a result (legacy path, calls QueryWithOptions). ctx is accepted for interface consistency; query results are not region-isolated.

func (*InMemoryBackend) QueryWithOptions

func (b *InMemoryBackend) QueryWithOptions(ctx context.Context, opts QueryOptions) (*QueryPage, error)

QueryWithOptions executes a query with full options support (clientToken, pagination). ctx is accepted for interface consistency; query results are not region-isolated.

func (*InMemoryBackend) Region

func (b *InMemoryBackend) Region() string

Region returns the default region for the backend.

func (*InMemoryBackend) Reset

func (b *InMemoryBackend) Reset()

Reset clears all backend state, returning it to a freshly initialised condition.

func (*InMemoryBackend) Restore

func (b *InMemoryBackend) Restore(ctx context.Context, data []byte) error

Restore loads backend state from a JSON snapshot. It implements persistence.Persistable.

func (*InMemoryBackend) SetCatalog

func (b *InMemoryBackend) SetCatalog(c Catalog)

SetCatalog wires the Timestream Write catalog; unset, table references are not checked.

func (*InMemoryBackend) SetTagWriteBackend added in v1.3.1

func (b *InMemoryBackend) SetTagWriteBackend(wb TagWriteBackend)

SetTagWriteBackend wires the Timestream Write backend that owns the shared tag store. Left unwired, CreateScheduledQuery still records tags on the ScheduledQuery itself (this package's own TagResource/ListTagsForResource still serve them) -- only cross-service reads via TimestreamWrite are affected, matching how other cross-service seams in this repo degrade.

func (*InMemoryBackend) Snapshot

func (b *InMemoryBackend) Snapshot(ctx context.Context) []byte

Snapshot serialises the backend state to JSON. It implements persistence.Persistable.

func (*InMemoryBackend) TagResource

func (b *InMemoryBackend) TagResource(_ context.Context, arnStr string, tags map[string]string) error

TagResource adds tags to a resource identified by its ARN. The ARN self-encodes the region, so no separate region resolution is needed.

func (*InMemoryBackend) UntagResource

func (b *InMemoryBackend) UntagResource(_ context.Context, arnStr string, tagKeys []string) error

UntagResource removes tags from a resource identified by its ARN. The ARN self-encodes the region, so no separate region resolution is needed.

func (*InMemoryBackend) UpdateAccountSettings

func (b *InMemoryBackend) UpdateAccountSettings(
	ctx context.Context, queryPricingModel string, maxQueryTCU *int32, queryCompute *QueryComputeUpdate,
) (AccountSettings, error)

UpdateAccountSettings updates the account-level settings for the request region and returns the new state. Only non-empty queryPricingModel, non-nil maxQueryTCU, and non-nil queryCompute values are applied; omitted fields preserve their current values.

queryCompute wires UpdateAccountSettingsInput.QueryCompute -- switching the account between ON_DEMAND and PROVISIONED compute mode. An earlier version of this method accepted only queryPricingModel/maxQueryTCU, silently dropping QueryCompute from every request: the account could never actually transition away from the ON_DEMAND default even though DescribeAccountSettings always echoed a QueryCompute field back.

func (*InMemoryBackend) UpdateScheduledQuery

func (b *InMemoryBackend) UpdateScheduledQuery(_ context.Context, arnStr, state string) error

UpdateScheduledQuery updates the state of a scheduled query by ARN. Only ENABLED and DISABLED are valid states. The ARN self-encodes the region, so no separate region resolution is needed.

type LastRunSummary

type LastRunSummary struct {
	ErrorReportLocation *ErrorReportLocation `json:"ErrorReportLocation,omitempty"`
	ExecutionStats      *ExecutionStats      `json:"ExecutionStats,omitempty"`
	FailureReason       string               `json:"FailureReason,omitempty"`
	RunStatus           string               `json:"RunStatus,omitempty"`
	TriggerTime         float64              `json:"TriggerTime,omitempty"`
	InvocationTime      float64              `json:"InvocationTime,omitempty"`
}

LastRunSummary holds the full summary of the most recent execution of a scheduled query. Timestamps are float64 (Unix epoch seconds) to match the AWS JSON protocol 1.0 wire format.

type LastUpdate

type LastUpdate struct {
	TargetQueryTCU *int32 `json:"TargetQueryTCU,omitempty"`
	Status         string `json:"Status,omitempty"`
}

LastUpdate reports the status of the most recent account-settings update affecting provisioned capacity (types.LastUpdate on the wire). This emulator applies QueryCompute changes synchronously, so Status is always SUCCEEDED.

type ListScheduledQueriesResult

type ListScheduledQueriesResult struct {
	NextToken string
	Items     []ScheduledQueryListEntry
}

ListScheduledQueriesResult is the paginated result of a ListScheduledQueries call.

type MixedMeasureMapping added in v1.5.0

type MixedMeasureMapping struct {
	MeasureName                   string                         `json:"MeasureName,omitempty"`
	SourceColumn                  string                         `json:"SourceColumn,omitempty"`
	TargetMeasureName             string                         `json:"TargetMeasureName,omitempty"`
	MeasureValueType              string                         `json:"MeasureValueType"`
	MultiMeasureAttributeMappings []MultiMeasureAttributeMapping `json:"MultiMeasureAttributeMappings,omitempty"`
}

MixedMeasureMapping maps a query result column to a measure (types.MixedMeasureMapping on the wire).

type MultiMeasureAttributeMapping added in v1.5.0

type MultiMeasureAttributeMapping struct {
	SourceColumn                    string `json:"SourceColumn"`
	TargetMultiMeasureAttributeName string `json:"TargetMultiMeasureAttributeName,omitempty"`
	MeasureValueType                string `json:"MeasureValueType"`
}

MultiMeasureAttributeMapping maps a source column to a multi-measure attribute (types.MultiMeasureAttributeMapping on the wire).

type MultiMeasureMappings added in v1.5.0

type MultiMeasureMappings struct {
	TargetMultiMeasureName        string                         `json:"TargetMultiMeasureName,omitempty"`
	MultiMeasureAttributeMappings []MultiMeasureAttributeMapping `json:"MultiMeasureAttributeMappings"`
}

MultiMeasureMappings groups multi-measure attribute mappings (types.MultiMeasureMappings on the wire).

type PrepareQueryResult

type PrepareQueryResult struct {
	QueryString string
	Columns     []ColumnInfo
	Selected    []SelectColumn
	Parameters  []ColumnInfo
}

PrepareQueryResult holds the result of a PrepareQuery call (typed).

type Provider

type Provider struct{}

Provider implements service.Provider for the Timestream Query service.

func (*Provider) Init

Init initializes the Timestream Query service backend and handler.

func (*Provider) Name

func (p *Provider) Name() string

Name returns the provider name.

type ProvisionedCapacity

type ProvisionedCapacity struct {
	ActiveQueryTCU            *int32                                    `json:"ActiveQueryTCU,omitempty"`
	LastUpdate                *LastUpdate                               `json:"LastUpdate,omitempty"`
	NotificationConfiguration *AccountSettingsNotificationConfiguration `json:"NotificationConfiguration,omitempty"`
}

ProvisionedCapacity holds the response-side provisioned-TCU configuration returned by DescribeAccountSettings/UpdateAccountSettings (types.ProvisionedCapacityResponse on the wire). The active-capacity field is named "ActiveQueryTCU" on the response -- "TargetQueryTCU" is the *request*-side field name (types.ProvisionedCapacityRequest) and is only used transiently while parsing an UpdateAccountSettings request body (see QueryComputeUpdate).

type QueryCompute

type QueryCompute struct {
	ProvisionedCapacity *ProvisionedCapacity `json:"ProvisionedCapacity,omitempty"`
	ComputeMode         string               `json:"ComputeMode,omitempty"` // ON_DEMAND | PROVISIONED
}

QueryCompute holds the compute mode and optional provisioned capacity (types.QueryComputeResponse on the wire).

type QueryComputeUpdate

type QueryComputeUpdate struct {
	TargetQueryTCU            *int32
	NotificationConfiguration *AccountSettingsNotificationConfiguration
	ComputeMode               string
}

QueryComputeUpdate is the parsed request-side shape for UpdateAccountSettingsInput.QueryCompute (types.QueryComputeRequest on the wire): the requested ComputeMode plus, when PROVISIONED, the requested TargetQueryTCU and optional NotificationConfiguration (types.ProvisionedCapacityRequest.NotificationConfiguration).

type QueryInsightsResponse

type QueryInsightsResponse struct {
	OutputRows           int64   `json:"OutputRows"`
	OutputBytes          int64   `json:"OutputBytes"`
	UnloadPartitionCount int64   `json:"UnloadPartitionCount,omitempty"`
	UnloadWrittenRows    int64   `json:"UnloadWrittenRows,omitempty"`
	UnloadWrittenBytes   int64   `json:"UnloadWrittenBytes,omitempty"`
	QuerySpatialCoverage float64 `json:"QuerySpatialCoverage,omitempty"`
}

QueryInsightsResponse holds the insights payload returned alongside query results.

type QueryOptions

type QueryOptions struct {
	QueryString  string
	ClientToken  string
	NextToken    string
	InsightsMode string
	MaxRows      int32
}

QueryOptions holds parameters for a Query call.

type QueryPage

type QueryPage struct {
	Insights    *QueryInsightsResponse
	QueryID     string
	NextToken   string
	Rows        []Row
	Columns     []ColumnInfo
	QueryStatus QueryStatusDetail
}

QueryPage is the page-level result returned by QueryWithOptions.

type QueryResult

type QueryResult struct {
	QueryID     string
	Rows        []Row
	Columns     []ColumnInfo
	Insights    QueryInsightsResponse
	QueryStatus QueryStatusDetail
	// Cancelled records whether CancelQuery has already been issued for this
	// query. CancelQueryOutput.CancellationMessage is documented as returned
	// "when a CancelQuery request for the query ... has already been issued",
	// i.e. cancellation is idempotent -- a repeat CancelQuery call for the
	// same QueryId must still succeed, not 404.
	Cancelled bool
}

QueryResult represents the result of a Query call (typed).

type QueryStatusDetail

type QueryStatusDetail struct {
	ProgressPercentage     float64 `json:"ProgressPercentage"`
	CumulativeBytesScanned int64   `json:"CumulativeBytesScanned"`
	CumulativeBytesMetered int64   `json:"CumulativeBytesMetered"`
}

QueryStatusDetail holds byte-level progress info for a Query call.

type Row

type Row struct {
	Data []Datum `json:"Data"`
}

Row is a result row containing typed Data cells.

type S3ReportLocation

type S3ReportLocation struct {
	ObjectKey  string `json:"ObjectKey,omitempty"`
	BucketName string `json:"BucketName,omitempty"`
}

S3ReportLocation is the S3 bucket + key for an error report.

type ScheduledQuery

type ScheduledQuery struct {
	LastRunTime             time.Time                   `json:"last_run_time"`
	CreationTime            time.Time                   `json:"creation_time"`
	TargetDetail            *ScheduledQueryTargetDetail `json:"target_detail,omitempty"`
	Tags                    map[string]string           `json:"tags"`
	NotificationTopicArn    string                      `json:"notification_topic_arn"`
	ScheduleExpression      string                      `json:"schedule_expression"`
	ExecutionRoleArn        string                      `json:"execution_role_arn"`
	QueryString             string                      `json:"query_string"`
	ErrorReportS3BucketName string                      `json:"error_report_s3_bucket_name"`
	TargetDatabase          string                      `json:"target_database"`
	TargetTable             string                      `json:"target_table"`
	State                   string                      `json:"state"`
	Name                    string                      `json:"name"`
	Arn                     string                      `json:"arn"`
	KmsKeyID                string                      `json:"kms_key_id,omitempty"`
	// ErrorReportEncryptionOption/ErrorReportObjectKeyPrefix mirror
	// types.S3Configuration.EncryptionOption/ObjectKeyPrefix (both optional,
	// api_op_CreateScheduledQuery.go) -- accepted and echoed back, but this
	// emulator performs no actual at-rest encryption of error reports (same
	// honest scoping as KmsKeyID, see PARITY.md gaps).
	ErrorReportEncryptionOption string `json:"error_report_encryption_option,omitempty"`
	ErrorReportObjectKeyPrefix  string `json:"error_report_object_key_prefix,omitempty"`
}

ScheduledQuery represents a Timestream scheduled query.

type ScheduledQueryListEntry

type ScheduledQueryListEntry struct {
	TargetDestination      *TargetDestinationForList `json:"TargetDestination,omitempty"`
	Arn                    string                    `json:"Arn"`
	Name                   string                    `json:"Name"`
	State                  string                    `json:"State"`
	LastRunStatus          string                    `json:"LastRunStatus,omitempty"`
	CreationTime           float64                   `json:"CreationTime,omitempty"`
	NextInvocationTime     float64                   `json:"NextInvocationTime,omitempty"`
	PreviousInvocationTime float64                   `json:"PreviousInvocationTime,omitempty"`
}

ScheduledQueryListEntry is the enriched summary used in list responses (gap #19). Timestamps are float64 (Unix epoch seconds) to match the AWS JSON protocol 1.0 wire format.

type ScheduledQuerySummary

type ScheduledQuerySummary struct {
	Arn   string `json:"Arn"`
	Name  string `json:"Name"`
	State string `json:"State"`
}

ScheduledQuerySummary is a reduced view used in list responses.

type ScheduledQueryTargetDetail added in v1.5.0

type ScheduledQueryTargetDetail struct {
	MultiMeasureMappings *MultiMeasureMappings
	TimeColumn           string
	MeasureNameColumn    string
	DimensionMappings    []DimensionMapping
	MixedMeasureMappings []MixedMeasureMapping
}

ScheduledQueryTargetDetail holds the TargetConfiguration.TimestreamConfiguration fields beyond DatabaseName/TableName. TimeColumn and DimensionMappings are both required (types.TimestreamConfiguration, api_op_CreateScheduledQuery.go) whenever TargetConfiguration is set; MeasureNameColumn/MixedMeasureMappings/ MultiMeasureMappings are optional.

type SelectColumn

type SelectColumn struct {
	DatabaseName string
	TableName    string
	ColumnInfo
	Aliased bool
}

SelectColumn is a PrepareQuery output column (types.SelectColumn).

type SnsConfiguration added in v1.2.0

type SnsConfiguration struct {
	TopicArn string `json:"TopicArn,omitempty"`
}

SnsConfiguration holds the SNS topic ARN for account-settings (provisioned-capacity) change notifications (types.SnsConfiguration).

type StorageBackend

type StorageBackend interface {
	AccountID() string
	Region() string
	CreateScheduledQuery(
		ctx context.Context,
		name, queryString, scheduleExpression, executionRoleArn,
		notificationTopicArn, errorReportS3BucketName, targetDatabase, targetTable, clientToken, kmsKeyID string,
		errorReportEncryptionOption, errorReportObjectKeyPrefix string,
		tags map[string]string,
		targetDetail *ScheduledQueryTargetDetail,
	) (*ScheduledQuery, error)
	DescribeScheduledQuery(ctx context.Context, arnStr string) (*ScheduledQuery, error)
	DeleteScheduledQuery(ctx context.Context, arnStr string) error
	ListScheduledQueries(ctx context.Context) []ScheduledQuerySummary
	ListScheduledQueriesFull(ctx context.Context) []*ScheduledQuery
	ListScheduledQueriesEnriched(ctx context.Context, nextToken string, maxResults int32) ListScheduledQueriesResult
	UpdateScheduledQuery(ctx context.Context, arnStr, state string) error
	ExecuteScheduledQuery(ctx context.Context, arnStr string, invocationTime time.Time) error
	Query(ctx context.Context, queryString string) *QueryResult
	QueryWithOptions(ctx context.Context, opts QueryOptions) (*QueryPage, error)
	CancelQuery(ctx context.Context, queryID string) error
	TagResource(ctx context.Context, arnStr string, tags map[string]string) error
	UntagResource(ctx context.Context, arnStr string, tagKeys []string) error
	ListTagsForResource(ctx context.Context, arnStr string) ([]map[string]string, error)
	DescribeAccountSettings(ctx context.Context) AccountSettings
	PrepareQuery(ctx context.Context, queryString string, validateOnly bool) (*PrepareQueryResult, error)
	UpdateAccountSettings(
		ctx context.Context, queryPricingModel string, maxQueryTCU *int32, queryCompute *QueryComputeUpdate,
	) (AccountSettings, error)
}

StorageBackend defines the interface for Timestream Query backend implementations. All mutating methods must be safe for concurrent use.

type TagWriteBackend added in v1.3.1

type TagWriteBackend interface {
	TagResource(arn string, tags map[string]string) error
	UntagResource(arn string, tagKeys []string) error
}

TagWriteBackend is the seam into the Timestream Write backend, which serves TagResource/UntagResource/ListTagsForResource for scheduled-query ARNs too (handler.go's writeServiceTagOps: real Timestream exposes one shared tag store across both API surfaces). Without this wired, CreateScheduledQuery's Tags never reach the store those reads consult.

type TargetDestinationForList

type TargetDestinationForList struct {
	TimestreamDestination *TimestreamDestinationForList `json:"TimestreamDestination,omitempty"`
}

TargetDestinationForList summarises the write destination for list responses.

type TimeSeriesDataPoint

type TimeSeriesDataPoint struct {
	Time  string `json:"Time"`
	Value Datum  `json:"Value"`
}

TimeSeriesDataPoint is one entry in a TimeSeries datum.

type TimestreamDestinationForList

type TimestreamDestinationForList struct {
	DatabaseName string `json:"DatabaseName,omitempty"`
	TableName    string `json:"TableName,omitempty"`
}

TimestreamDestinationForList is the Timestream write target in a list summary.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL