startRun method
- required String outputUri,
- required String roleArn,
- CacheBehavior? cacheBehavior,
- String? cacheId,
- String? configurationName,
- Object? engineSettings,
- RunLogLevel? logLevel,
- String? name,
- NetworkingMode? networkingMode,
- Object? parameters,
- int? priority,
- String? requestId,
- RunRetentionMode? retentionMode,
- String? runGroupId,
- String? runId,
- int? storageCapacity,
- StorageType? storageType,
- Map<
String, String> ? tags, - String? workflowId,
- String? workflowOwnerId,
- WorkflowType? workflowType,
- String? workflowVersionName,
Starts a new run and returns details about the run, or duplicates an
existing run. A run is a single invocation of a workflow. If you provide
request IDs, Amazon Web Services HealthOmics identifies duplicate requests
and starts the run only once. Monitor the progress of the run by calling
the GetRun API operation.
To start a new run, the following inputs are required:
-
A service role ARN (
roleArn). -
The run's workflow ID (
workflowId, not theuuidorrunId). -
An Amazon S3 location (
outputUri) where the run outputs will be saved. -
All required workflow parameters (
parameter), which can include optional parameters from the parameter template. The run cannot include any parameters that are not defined in the parameter template. To see all possible parameters, use theGetRunAPI operation. -
For runs with a
STATIC(default) storage type, specify the required storage capacity (in gibibytes). A storage capacity value is not required for runs that useDYNAMICstorage.
StartRun can also duplicate an existing run using the run's
default values. You can modify these default values and/or add other
optional inputs. To duplicate a run, the following inputs are required:
-
A service role ARN (
roleArn). -
The ID of the run to duplicate (
runId). -
An Amazon S3 location where the run outputs will be saved
(
outputUri).
StartRun, see
Starting
a run in the Amazon Web Services HealthOmics User Guide.
Use the retentionMode input to control how long the metadata
for each run is stored in CloudWatch. There are two retention modes:
-
Specify
REMOVEto automatically remove the oldest runs when you reach the maximum service retention limit for runs. It is recommended that you use theREMOVEmode to initiate major run requests so that your runs do not fail when you reach the limit. -
The
retentionModeis set to theRETAINmode by default, which allows you to manually remove runs after reaching the maximum service retention limit. Under this setting, you cannot create additional runs until you remove the excess runs.
You can use Amazon Q CLI to analyze run logs and make performance optimization recommendations. To get started, see the Amazon Web Services HealthOmics MCP server on GitHub.
May throw AccessDeniedException.
May throw ConflictException.
May throw InternalServerException.
May throw RequestTimeoutException.
May throw ResourceNotFoundException.
May throw ServiceQuotaExceededException.
May throw ThrottlingException.
May throw ValidationException.
Parameter outputUri :
An output S3 URI for the run. The S3 bucket must be in the same region as
the workflow. The role ARN must have permission to write to this S3
bucket.
Parameter roleArn :
A service role for the run. The roleArn requires access to
Amazon Web Services HealthOmics, S3, Cloudwatch logs, and EC2. An example
roleArn is
arn:aws:iam::123456789012:role/omics-service-role-serviceRole-W8O1XMPL7QZ.
In this example, the AWS account ID is 123456789012 and the
role name is omics-service-role-serviceRole-W8O1XMPL7QZ.
Parameter cacheBehavior :
The cache behavior for the run. You specify this value if you want to
override the default behavior for the cache. You had set the default value
when you created the cache. For more information, see Run
cache behavior in the Amazon Web Services HealthOmics User
Guide.
Parameter cacheId :
Identifier of the cache associated with this run. If you don't specify a
cache ID, no task outputs are cached for this run.
Parameter configurationName :
Optional configuration name to use for the workflow run.
Parameter engineSettings :
Engine-specific settings for the workflow run. Use this field to specify
configuration options that are specific to the workflow engine (for
example, Nextflow profiles).
Parameter logLevel :
A log level for the run.
Parameter name :
A name for the run. This is recommended to view and organize runs in the
Amazon Web Services HealthOmics console and CloudWatch logs.
Parameter networkingMode :
Optional configuration for run networking behavior. If not specified, this
will default to RESTRICTED.
Parameter parameters :
Parameters for the run. The run needs all required parameters and can
include optional parameters. The run cannot include any parameters that
are not defined in the parameter template. To retrieve parameters from the
run, use the GetRun API operation.
Parameter priority :
Use the run priority (highest: 1) to establish the order of runs in a run
group when you start a run. If multiple runs share the same priority, the
run that was initiated first will have the higher priority. Runs that do
not belong to a run group can be assigned a priority. The priorities of
these runs are ranked among other runs that are not in a run group. For
more information, see Run
priority in the Amazon Web Services HealthOmics User Guide.
Parameter requestId :
An idempotency token used to dedupe retry requests so that duplicate runs
are not created.
Parameter retentionMode :
The retention mode for the run. The default value is RETAIN.
Amazon Web Services HealthOmics stores a fixed number of runs that are
available to the console and API. In the default mode
(RETAIN), you need to remove runs manually when the number of
run exceeds the maximum. If you set the retention mode to
REMOVE, Amazon Web Services HealthOmics automatically removes
runs (that have mode set to REMOVE) when the number of run
exceeds the maximum. All run logs are available in CloudWatch logs, if you
need information about a run that is no longer available to the API.
For more information about retention mode, see Specifying run retention mode in the Amazon Web Services HealthOmics User Guide.
Parameter runGroupId :
The run's group ID. Use a run group to cap the compute resources (and
number of concurrent runs) for the runs that you add to the run group.
Parameter runId :
The ID of a run to duplicate.
Parameter storageCapacity :
The STATIC storage capacity (in gibibytes, GiB) for this run.
The default run storage capacity is 1200 GiB. If your requested storage
capacity is unavailable, the system rounds up the value to the nearest
1200 GiB multiple. If the requested storage capacity is still unavailable,
the system rounds up the value to the nearest 2400 GiB multiple. This
field is not required if the storage type is DYNAMIC (the
system ignores any value that you enter).
Parameter storageType :
The storage type for the run. If you set the storage type to
DYNAMIC, Amazon Web Services HealthOmics dynamically scales
the storage up or down, based on file system utilization. By default, the
run uses STATIC storage type, which allocates a fixed amount
of storage. For more information about DYNAMIC and
STATIC storage, see Run
storage types in the Amazon Web Services HealthOmics User
Guide.
Parameter tags :
Tags for the run. You can add up to 50 tags per run. For more information,
see Adding
a tag in the Amazon Web Services HealthOmics User Guide.
Parameter workflowId :
The run's workflow ID. The workflowId is not the UUID.
Parameter workflowOwnerId :
The 12-digit account ID of the workflow owner that is used for running a
shared workflow. The workflow owner ID can be retrieved using the
GetShare API operation. If you are the workflow owner, you do
not need to include this ID.
Parameter workflowType :
The run's workflow type. The workflowType must be specified
if you are running a READY2RUN workflow. If you are running a
PRIVATE workflow (default), you do not need to include the
workflow type.
Parameter workflowVersionName :
The name of the workflow version. Use workflow versions to track and
organize changes to the workflow. If your workflow has multiple versions,
the run uses the default version unless you specify a version name. To
learn more, see Workflow
versioning in the Amazon Web Services HealthOmics User Guide.
Implementation
Future<StartRunResponse> startRun({
required String outputUri,
required String roleArn,
CacheBehavior? cacheBehavior,
String? cacheId,
String? configurationName,
Object? engineSettings,
RunLogLevel? logLevel,
String? name,
NetworkingMode? networkingMode,
Object? parameters,
int? priority,
String? requestId,
RunRetentionMode? retentionMode,
String? runGroupId,
String? runId,
int? storageCapacity,
StorageType? storageType,
Map<String, String>? tags,
String? workflowId,
String? workflowOwnerId,
WorkflowType? workflowType,
String? workflowVersionName,
}) async {
final $payload = <String, dynamic>{
'outputUri': outputUri,
'roleArn': roleArn,
if (cacheBehavior != null) 'cacheBehavior': cacheBehavior.value,
if (cacheId != null) 'cacheId': cacheId,
if (configurationName != null) 'configurationName': configurationName,
if (engineSettings != null) 'engineSettings': engineSettings,
if (logLevel != null) 'logLevel': logLevel.value,
if (name != null) 'name': name,
if (networkingMode != null) 'networkingMode': networkingMode.value,
if (parameters != null) 'parameters': parameters,
if (priority != null) 'priority': priority,
'requestId': requestId ?? _s.generateIdempotencyToken(),
if (retentionMode != null) 'retentionMode': retentionMode.value,
if (runGroupId != null) 'runGroupId': runGroupId,
if (runId != null) 'runId': runId,
if (storageCapacity != null) 'storageCapacity': storageCapacity,
if (storageType != null) 'storageType': storageType.value,
if (tags != null) 'tags': tags,
if (workflowId != null) 'workflowId': workflowId,
if (workflowOwnerId != null) 'workflowOwnerId': workflowOwnerId,
if (workflowType != null) 'workflowType': workflowType.value,
if (workflowVersionName != null)
'workflowVersionName': workflowVersionName,
};
final response = await _protocol.send(
payload: $payload,
method: 'POST',
requestUri: '/run',
exceptionFnMap: _exceptionFns,
);
return StartRunResponse.fromJson(response);
}