/* * Copyright 2018-2023 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. */ package com.amazonaws.services.timestreamwrite; import javax.annotation.Generated; import com.amazonaws.*; import com.amazonaws.regions.*; import com.amazonaws.services.timestreamwrite.model.*; /** * Interface for accessing Timestream Write. *
* Note: Do not directly implement this interface, new methods are added to it regularly. Extend from * {@link com.amazonaws.services.timestreamwrite.AbstractAmazonTimestreamWrite} instead. *
*
*
* Amazon Timestream is a fast, scalable, fully managed time-series database service that makes it easy to store and * analyze trillions of time-series data points per day. With Timestream, you can easily store and analyze IoT sensor * data to derive insights from your IoT applications. You can analyze industrial telemetry to streamline equipment * management and maintenance. You can also store and analyze log data and metrics to improve the performance and * availability of your applications. *
** Timestream is built from the ground up to effectively ingest, process, and store time-series data. It organizes data * to optimize query processing. It automatically scales based on the volume of data ingested and on the query volume to * ensure you receive optimal performance while inserting and querying data. As your data grows over time, Timestream’s * adaptive query processing engine spans across storage tiers to provide fast analysis while reducing costs. *
*/ @Generated("com.amazonaws:aws-java-sdk-code-generator") public interface AmazonTimestreamWrite { /** * The region metadata service name for computing region endpoints. You can use this value to retrieve metadata * (such as supported regions) of the service. * * @see RegionUtils#getRegionsForService(String) */ String ENDPOINT_PREFIX = "ingest.timestream"; /** *
* Creates a new Timestream batch load task. A batch load task processes data from a CSV source in an S3 location
* and writes to a Timestream table. A mapping from source to target is defined in a batch load task. Errors and
* events are written to a report at an S3 location. For the report, if the KMS key is not specified, the report
* will be encrypted with an S3 managed key when SSE_S3
is the option. Otherwise an error is thrown.
* For more information, see Amazon Web Services
* managed keys. Service
* quotas apply. For details, see code
* sample.
*
* Creates a new Timestream database. If the KMS key is not specified, the database will be encrypted with a * Timestream managed KMS key located in your account. For more information, see Amazon Web Services * managed keys. Service * quotas apply. For details, see code sample. *
* * @param createDatabaseRequest * @return Result of the CreateDatabase operation returned by the service. * @throws ConflictException * Timestream was unable to process this request because it contains resource that already exists. * @throws ValidationException * An invalid or malformed request. * @throws AccessDeniedException * You are not authorized to perform this action. * @throws ServiceQuotaExceededException * The instance quota of resource exceeded for this account. * @throws ThrottlingException * Too many requests were made by a user and they exceeded the service quotas. The request was throttled. * @throws InvalidEndpointException * The requested endpoint was not valid. * @throws InternalServerException * Timestream was unable to fully process this request because of an internal server error. * @throws InvalidEndpointException * The requested endpoint was not valid. * @sample AmazonTimestreamWrite.CreateDatabase * @see AWS API Documentation */ CreateDatabaseResult createDatabase(CreateDatabaseRequest createDatabaseRequest); /** ** Adds a new table to an existing database in your account. In an Amazon Web Services account, table names must be * at least unique within each Region if they are in the same database. You might have identical table names in the * same Region if the tables are in separate databases. While creating the table, you must specify the table name, * database name, and the retention properties. Service quotas apply. See * code * sample for details. *
* * @param createTableRequest * @return Result of the CreateTable operation returned by the service. * @throws ConflictException * Timestream was unable to process this request because it contains resource that already exists. * @throws ValidationException * An invalid or malformed request. * @throws AccessDeniedException * You are not authorized to perform this action. * @throws ResourceNotFoundException * The operation tried to access a nonexistent resource. The resource might not be specified correctly, or * its status might not be ACTIVE. * @throws ServiceQuotaExceededException * The instance quota of resource exceeded for this account. * @throws ThrottlingException * Too many requests were made by a user and they exceeded the service quotas. The request was throttled. * @throws InvalidEndpointException * The requested endpoint was not valid. * @throws InternalServerException * Timestream was unable to fully process this request because of an internal server error. * @throws InvalidEndpointException * The requested endpoint was not valid. * @sample AmazonTimestreamWrite.CreateTable * @see AWS * API Documentation */ CreateTableResult createTable(CreateTableRequest createTableRequest); /** ** Deletes a given Timestream database. This is an irreversible operation. After a database is deleted, the * time-series data from its tables cannot be recovered. *
** All tables in the database must be deleted first, or a ValidationException error will be thrown. *
** Due to the nature of distributed retries, the operation can return either success or a ResourceNotFoundException. * Clients should consider them equivalent. *
** See code * sample for details. *
* * @param deleteDatabaseRequest * @return Result of the DeleteDatabase operation returned by the service. * @throws InternalServerException * Timestream was unable to fully process this request because of an internal server error. * @throws ThrottlingException * Too many requests were made by a user and they exceeded the service quotas. The request was throttled. * @throws ResourceNotFoundException * The operation tried to access a nonexistent resource. The resource might not be specified correctly, or * its status might not be ACTIVE. * @throws ValidationException * An invalid or malformed request. * @throws AccessDeniedException * You are not authorized to perform this action. * @throws InvalidEndpointException * The requested endpoint was not valid. * @sample AmazonTimestreamWrite.DeleteDatabase * @see AWS API Documentation */ DeleteDatabaseResult deleteDatabase(DeleteDatabaseRequest deleteDatabaseRequest); /** ** Deletes a given Timestream table. This is an irreversible operation. After a Timestream database table is * deleted, the time-series data stored in the table cannot be recovered. *
** Due to the nature of distributed retries, the operation can return either success or a ResourceNotFoundException. * Clients should consider them equivalent. *
** See code * sample for details. *
* * @param deleteTableRequest * @return Result of the DeleteTable operation returned by the service. * @throws InternalServerException * Timestream was unable to fully process this request because of an internal server error. * @throws ThrottlingException * Too many requests were made by a user and they exceeded the service quotas. The request was throttled. * @throws ValidationException * An invalid or malformed request. * @throws ResourceNotFoundException * The operation tried to access a nonexistent resource. The resource might not be specified correctly, or * its status might not be ACTIVE. * @throws AccessDeniedException * You are not authorized to perform this action. * @throws InvalidEndpointException * The requested endpoint was not valid. * @sample AmazonTimestreamWrite.DeleteTable * @see AWS * API Documentation */ DeleteTableResult deleteTable(DeleteTableRequest deleteTableRequest); /** ** Returns information about the batch load task, including configurations, mappings, progress, and other details. * Service quotas apply. * See code * sample for details. *
* * @param describeBatchLoadTaskRequest * @return Result of the DescribeBatchLoadTask operation returned by the service. * @throws InternalServerException * Timestream was unable to fully process this request because of an internal server error. * @throws ThrottlingException * Too many requests were made by a user and they exceeded the service quotas. The request was throttled. * @throws AccessDeniedException * You are not authorized to perform this action. * @throws ResourceNotFoundException * The operation tried to access a nonexistent resource. The resource might not be specified correctly, or * its status might not be ACTIVE. * @throws InvalidEndpointException * The requested endpoint was not valid. * @sample AmazonTimestreamWrite.DescribeBatchLoadTask * @see AWS API Documentation */ DescribeBatchLoadTaskResult describeBatchLoadTask(DescribeBatchLoadTaskRequest describeBatchLoadTaskRequest); /** ** Returns information about the database, including the database name, time that the database was created, and the * total number of tables found within the database. Service quotas apply. See * code * sample for details. *
* * @param describeDatabaseRequest * @return Result of the DescribeDatabase operation returned by the service. * @throws ResourceNotFoundException * The operation tried to access a nonexistent resource. The resource might not be specified correctly, or * its status might not be ACTIVE. * @throws ValidationException * An invalid or malformed request. * @throws AccessDeniedException * You are not authorized to perform this action. * @throws ThrottlingException * Too many requests were made by a user and they exceeded the service quotas. The request was throttled. * @throws InternalServerException * Timestream was unable to fully process this request because of an internal server error. * @throws InvalidEndpointException * The requested endpoint was not valid. * @sample AmazonTimestreamWrite.DescribeDatabase * @see AWS API Documentation */ DescribeDatabaseResult describeDatabase(DescribeDatabaseRequest describeDatabaseRequest); /** ** Returns a list of available endpoints to make Timestream API calls against. This API operation is available * through both the Write and Query APIs. *
** Because the Timestream SDKs are designed to transparently work with the service’s architecture, including the * management and mapping of the service endpoints, we don't recommend that you use this API operation * unless: *
** You are using VPC endpoints * (Amazon Web Services PrivateLink) with Timestream *
** Your application uses a programming language that does not yet have SDK support *
** You require better control over the client-side implementation *
** For detailed information on how and when to use and implement DescribeEndpoints, see The Endpoint Discovery Pattern. *
* * @param describeEndpointsRequest * @return Result of the DescribeEndpoints operation returned by the service. * @throws InternalServerException * Timestream was unable to fully process this request because of an internal server error. * @throws ValidationException * An invalid or malformed request. * @throws ThrottlingException * Too many requests were made by a user and they exceeded the service quotas. The request was throttled. * @sample AmazonTimestreamWrite.DescribeEndpoints * @see AWS API Documentation */ DescribeEndpointsResult describeEndpoints(DescribeEndpointsRequest describeEndpointsRequest); /** ** Returns information about the table, including the table name, database name, retention duration of the memory * store and the magnetic store. Service quotas apply. See * code * sample for details. *
* * @param describeTableRequest * @return Result of the DescribeTable operation returned by the service. * @throws ResourceNotFoundException * The operation tried to access a nonexistent resource. The resource might not be specified correctly, or * its status might not be ACTIVE. * @throws ValidationException * An invalid or malformed request. * @throws AccessDeniedException * You are not authorized to perform this action. * @throws ThrottlingException * Too many requests were made by a user and they exceeded the service quotas. The request was throttled. * @throws InternalServerException * Timestream was unable to fully process this request because of an internal server error. * @throws InvalidEndpointException * The requested endpoint was not valid. * @sample AmazonTimestreamWrite.DescribeTable * @see AWS * API Documentation */ DescribeTableResult describeTable(DescribeTableRequest describeTableRequest); /** ** Provides a list of batch load tasks, along with the name, status, when the task is resumable until, and other * details. See code * sample for details. *
* * @param listBatchLoadTasksRequest * @return Result of the ListBatchLoadTasks operation returned by the service. * @throws InternalServerException * Timestream was unable to fully process this request because of an internal server error. * @throws AccessDeniedException * You are not authorized to perform this action. * @throws ThrottlingException * Too many requests were made by a user and they exceeded the service quotas. The request was throttled. * @throws ValidationException * An invalid or malformed request. * @throws InvalidEndpointException * The requested endpoint was not valid. * @sample AmazonTimestreamWrite.ListBatchLoadTasks * @see AWS API Documentation */ ListBatchLoadTasksResult listBatchLoadTasks(ListBatchLoadTasksRequest listBatchLoadTasksRequest); /** ** Returns a list of your Timestream databases. Service quotas apply. See * code sample * for details. *
* * @param listDatabasesRequest * @return Result of the ListDatabases operation returned by the service. * @throws InternalServerException * Timestream was unable to fully process this request because of an internal server error. * @throws ThrottlingException * Too many requests were made by a user and they exceeded the service quotas. The request was throttled. * @throws ValidationException * An invalid or malformed request. * @throws AccessDeniedException * You are not authorized to perform this action. * @throws InvalidEndpointException * The requested endpoint was not valid. * @sample AmazonTimestreamWrite.ListDatabases * @see AWS * API Documentation */ ListDatabasesResult listDatabases(ListDatabasesRequest listDatabasesRequest); /** ** Provides a list of tables, along with the name, status, and retention properties of each table. See code sample * for details. *
* * @param listTablesRequest * @return Result of the ListTables operation returned by the service. * @throws InternalServerException * Timestream was unable to fully process this request because of an internal server error. * @throws ThrottlingException * Too many requests were made by a user and they exceeded the service quotas. The request was throttled. * @throws ValidationException * An invalid or malformed request. * @throws ResourceNotFoundException * The operation tried to access a nonexistent resource. The resource might not be specified correctly, or * its status might not be ACTIVE. * @throws AccessDeniedException * You are not authorized to perform this action. * @throws InvalidEndpointException * The requested endpoint was not valid. * @sample AmazonTimestreamWrite.ListTables * @see AWS * API Documentation */ ListTablesResult listTables(ListTablesRequest listTablesRequest); /** ** Lists all tags on a Timestream resource. *
* * @param listTagsForResourceRequest * @return Result of the ListTagsForResource operation returned by the service. * @throws ResourceNotFoundException * The operation tried to access a nonexistent resource. The resource might not be specified correctly, or * its status might not be ACTIVE. * @throws ThrottlingException * Too many requests were made by a user and they exceeded the service quotas. The request was throttled. * @throws ValidationException * An invalid or malformed request. * @throws InvalidEndpointException * The requested endpoint was not valid. * @sample AmazonTimestreamWrite.ListTagsForResource * @see AWS API Documentation */ ListTagsForResourceResult listTagsForResource(ListTagsForResourceRequest listTagsForResourceRequest); /** **
* * @param resumeBatchLoadTaskRequest * @return Result of the ResumeBatchLoadTask operation returned by the service. * @throws InternalServerException * Timestream was unable to fully process this request because of an internal server error. * @throws ThrottlingException * Too many requests were made by a user and they exceeded the service quotas. The request was throttled. * @throws AccessDeniedException * You are not authorized to perform this action. * @throws ValidationException * An invalid or malformed request. * @throws ResourceNotFoundException * The operation tried to access a nonexistent resource. The resource might not be specified correctly, or * its status might not be ACTIVE. * @throws InvalidEndpointException * The requested endpoint was not valid. * @sample AmazonTimestreamWrite.ResumeBatchLoadTask * @see AWS API Documentation */ ResumeBatchLoadTaskResult resumeBatchLoadTask(ResumeBatchLoadTaskRequest resumeBatchLoadTaskRequest); /** ** Associates a set of tags with a Timestream resource. You can then activate these user-defined tags so that they * appear on the Billing and Cost Management console for cost allocation tracking. *
* * @param tagResourceRequest * @return Result of the TagResource operation returned by the service. * @throws ResourceNotFoundException * The operation tried to access a nonexistent resource. The resource might not be specified correctly, or * its status might not be ACTIVE. * @throws ServiceQuotaExceededException * The instance quota of resource exceeded for this account. * @throws ThrottlingException * Too many requests were made by a user and they exceeded the service quotas. The request was throttled. * @throws ValidationException * An invalid or malformed request. * @throws InvalidEndpointException * The requested endpoint was not valid. * @sample AmazonTimestreamWrite.TagResource * @see AWS * API Documentation */ TagResourceResult tagResource(TagResourceRequest tagResourceRequest); /** ** Removes the association of tags from a Timestream resource. *
* * @param untagResourceRequest * @return Result of the UntagResource operation returned by the service. * @throws ValidationException * An invalid or malformed request. * @throws ServiceQuotaExceededException * The instance quota of resource exceeded for this account. * @throws ThrottlingException * Too many requests were made by a user and they exceeded the service quotas. The request was throttled. * @throws ResourceNotFoundException * The operation tried to access a nonexistent resource. The resource might not be specified correctly, or * its status might not be ACTIVE. * @throws InvalidEndpointException * The requested endpoint was not valid. * @sample AmazonTimestreamWrite.UntagResource * @see AWS * API Documentation */ UntagResourceResult untagResource(UntagResourceRequest untagResourceRequest); /** *
* Modifies the KMS key for an existing database. While updating the database, you must specify the database name
* and the identifier of the new KMS key to be used (KmsKeyId
). If there are any concurrent
* UpdateDatabase
requests, first writer wins.
*
* See code * sample for details. *
* * @param updateDatabaseRequest * @return Result of the UpdateDatabase operation returned by the service. * @throws ValidationException * An invalid or malformed request. * @throws AccessDeniedException * You are not authorized to perform this action. * @throws ResourceNotFoundException * The operation tried to access a nonexistent resource. The resource might not be specified correctly, or * its status might not be ACTIVE. * @throws ServiceQuotaExceededException * The instance quota of resource exceeded for this account. * @throws ThrottlingException * Too many requests were made by a user and they exceeded the service quotas. The request was throttled. * @throws InternalServerException * Timestream was unable to fully process this request because of an internal server error. * @throws InvalidEndpointException * The requested endpoint was not valid. * @sample AmazonTimestreamWrite.UpdateDatabase * @see AWS API Documentation */ UpdateDatabaseResult updateDatabase(UpdateDatabaseRequest updateDatabaseRequest); /** ** Modifies the retention duration of the memory store and magnetic store for your Timestream table. Note that the * change in retention duration takes effect immediately. For example, if the retention period of the memory store * was initially set to 2 hours and then changed to 24 hours, the memory store will be capable of holding 24 hours * of data, but will be populated with 24 hours of data 22 hours after this change was made. Timestream does not * retrieve data from the magnetic store to populate the memory store. *
** See code * sample for details. *
* * @param updateTableRequest * @return Result of the UpdateTable operation returned by the service. * @throws InternalServerException * Timestream was unable to fully process this request because of an internal server error. * @throws ThrottlingException * Too many requests were made by a user and they exceeded the service quotas. The request was throttled. * @throws ValidationException * An invalid or malformed request. * @throws ResourceNotFoundException * The operation tried to access a nonexistent resource. The resource might not be specified correctly, or * its status might not be ACTIVE. * @throws AccessDeniedException * You are not authorized to perform this action. * @throws InvalidEndpointException * The requested endpoint was not valid. * @sample AmazonTimestreamWrite.UpdateTable * @see AWS * API Documentation */ UpdateTableResult updateTable(UpdateTableRequest updateTableRequest); /** ** Enables you to write your time-series data into Timestream. You can specify a single data point or a batch of * data points to be inserted into the system. Timestream offers you a flexible schema that auto detects the column * names and data types for your Timestream tables based on the dimension names and data types of the data points * you specify when invoking writes into the database. *
** Timestream supports eventual consistency read semantics. This means that when you query data immediately after * writing a batch of data into Timestream, the query results might not reflect the results of a recently completed * write operation. The results may also include some stale data. If you repeat the query request after a short * time, the results should return the latest data. Service quotas apply. *
** See code * sample for details. *
** Upserts *
*
* You can use the Version
parameter in a WriteRecords
request to update data points.
* Timestream tracks a version number with each record. Version
defaults to 1
when it's
* not specified for the record in the request. Timestream updates an existing record’s measure value along with its
* Version
when it receives a write request with a higher Version
number for that record.
* When it receives an update request where the measure value is the same as that of the existing record, Timestream
* still updates Version
, if it is greater than the existing value of Version
. You can
* update a data point as many times as desired, as long as the value of Version
continuously
* increases.
*
* For example, suppose you write a new record without indicating Version
in the request. Timestream
* stores this record, and set Version
to 1
. Now, suppose you try to update this record
* with a WriteRecords
request of the same record with a different measure value but, like before, do
* not provide Version
. In this case, Timestream will reject this update with a
* RejectedRecordsException
since the updated record’s version is not greater than the existing value
* of Version.
*
* However, if you were to resend the update request with Version
set to 2
, Timestream
* would then succeed in updating the record’s value, and the Version
would be set to 2
.
* Next, suppose you sent a WriteRecords
request with this same record and an identical measure value,
* but with Version
set to 3
. In this case, Timestream would only update
* Version
to 3
. Any further updates would need to send a version number greater than
* 3
, or the update requests would receive a RejectedRecordsException
.
*
* Records with duplicate data where there are multiple records with the same dimensions, timestamps, and * measure names but: *
** Measure values are different *
** Version is not present in the request or the value of version in the new record is equal to or * lower than the existing value *
*
* In this case, if Timestream rejects data, the ExistingVersion
field in the
* RejectedRecords
response will indicate the current record’s version. To force an update, you
* can resend the request with a version for the record set to a value greater than the
* ExistingVersion
.
*
* Records with timestamps that lie outside the retention duration of the memory store. *
** Records with dimensions or measures that exceed the Timestream defined limits. *
** For more information, see Quotas in the * Amazon Timestream Developer Guide. * @throws InvalidEndpointException * The requested endpoint was not valid. * @sample AmazonTimestreamWrite.WriteRecords * @see AWS * API Documentation */ WriteRecordsResult writeRecords(WriteRecordsRequest writeRecordsRequest); /** * Shuts down this client object, releasing any resources that might be held open. This is an optional method, and * callers are not expected to call it, but can if they want to explicitly release any open resources. Once a client * has been shutdown, it should not be used to make any more requests. */ void shutdown(); /** * Returns additional metadata for a previously executed successful request, typically used for debugging issues * where a service isn't acting as expected. This data isn't considered part of the result data returned by an * operation, so it's available through this separate, diagnostic interface. *
* Response metadata is only cached for a limited period of time, so if you need to access this extra diagnostic * information for an executed request, you should use this method to retrieve it as soon as possible after * executing a request. * * @param request * The originally executed request. * * @return The response metadata for the specified request, or null if none is available. */ ResponseMetadata getCachedResponseMetadata(AmazonWebServiceRequest request); }