createScheduledQuery method
- required ErrorReportConfiguration errorReportConfiguration,
- required String name,
- required NotificationConfiguration notificationConfiguration,
- required String queryString,
- required ScheduleConfiguration scheduleConfiguration,
- required String scheduledQueryExecutionRoleArn,
- String? clientToken,
- String? kmsKeyId,
- List<
Tag> ? tags, - TargetConfiguration? targetConfiguration,
Create a scheduled query that will be run on your behalf at the configured
schedule. Timestream assumes the execution role provided as part of the
ScheduledQueryExecutionRoleArn parameter to run the query.
You can use the NotificationConfiguration parameter to
configure notification for your scheduled query operations.
May throw AccessDeniedException.
May throw ConflictException.
May throw InternalServerException.
May throw InvalidEndpointException.
May throw ServiceQuotaExceededException.
May throw ThrottlingException.
May throw ValidationException.
Parameter errorReportConfiguration :
Configuration for error reporting. Error reports will be generated when a
problem is encountered when writing the query results.
Parameter name :
Name of the scheduled query.
Parameter notificationConfiguration :
Notification configuration for the scheduled query. A notification is sent
by Timestream when a query run finishes, when the state is updated or when
you delete it.
Parameter queryString :
The query string to run. Parameter names can be specified in the query
string @ character followed by an identifier. The named
Parameter @scheduled_runtime is reserved and can be used in
the query to get the time at which the query is scheduled to run.
The timestamp calculated according to the ScheduleConfiguration parameter,
will be the value of @scheduled_runtime paramater for each
query run. For example, consider an instance of a scheduled query
executing on 2021-12-01 00:00:00. For this instance, the
@scheduled_runtime parameter is initialized to the timestamp
2021-12-01 00:00:00 when invoking the query.
Parameter scheduleConfiguration :
The schedule configuration for the query.
Parameter scheduledQueryExecutionRoleArn :
The ARN for the IAM role that Timestream will assume when running the
scheduled query.
Parameter clientToken :
Using a ClientToken makes the call to CreateScheduledQuery idempotent, in
other words, making the same request repeatedly will produce the same
result. Making multiple identical CreateScheduledQuery requests has the
same effect as making a single request.
-
If CreateScheduledQuery is called without a
ClientToken, the Query SDK generates aClientTokenon your behalf. -
After 8 hours, any request with the same
ClientTokenis treated as a new request.
Parameter kmsKeyId :
The Amazon KMS key used to encrypt the scheduled query resource, at-rest.
If the Amazon KMS key is not specified, the scheduled query resource will
be encrypted with a Timestream owned Amazon KMS key. To specify a KMS key,
use the key ID, key ARN, alias name, or alias ARN. When using an alias
name, prefix the name with alias/
If ErrorReportConfiguration uses SSE_KMS as encryption type,
the same KmsKeyId is used to encrypt the error report at rest.
Parameter tags :
A list of key-value pairs to label the scheduled query.
Parameter targetConfiguration :
Configuration used for writing the result of a query.
Implementation
Future<CreateScheduledQueryResponse> createScheduledQuery({
required ErrorReportConfiguration errorReportConfiguration,
required String name,
required NotificationConfiguration notificationConfiguration,
required String queryString,
required ScheduleConfiguration scheduleConfiguration,
required String scheduledQueryExecutionRoleArn,
String? clientToken,
String? kmsKeyId,
List<Tag>? tags,
TargetConfiguration? targetConfiguration,
}) async {
final headers = <String, String>{
'Content-Type': 'application/x-amz-json-1.0',
'X-Amz-Target': 'Timestream_20181101.CreateScheduledQuery'
};
final jsonResponse = await _protocol.send(
method: 'POST',
requestUri: '/',
exceptionFnMap: _exceptionFns,
// TODO queryParams
headers: headers,
payload: {
'ErrorReportConfiguration': errorReportConfiguration,
'Name': name,
'NotificationConfiguration': notificationConfiguration,
'QueryString': queryString,
'ScheduleConfiguration': scheduleConfiguration,
'ScheduledQueryExecutionRoleArn': scheduledQueryExecutionRoleArn,
'ClientToken': clientToken ?? _s.generateIdempotencyToken(),
if (kmsKeyId != null) 'KmsKeyId': kmsKeyId,
if (tags != null) 'Tags': tags,
if (targetConfiguration != null)
'TargetConfiguration': targetConfiguration,
},
);
return CreateScheduledQueryResponse.fromJson(jsonResponse.body);
}