Skip to content

start_run_batch

start_run_batch(
    request_id: BatchRequestId,
    default_run_setting: DefaultRunSetting,
    batch_run_settings: BatchRunSettings,
    *,
    config_overrides: Optional[OmicsClientConfig] = None,
    batch_name: Optional[BatchName] = None,
    tags: Optional[TagMap] = None,
) -> StartRunBatchResponse

Starts a batch of workflow runs. You can group up to 100,000 runs into a single batch that share a common configuration defined in defaultRunSetting. Per-run overrides can be provided either inline via inlineSettings (up to 100 runs) or via a JSON file stored in Amazon S3 via s3UriSettings (up to 100,000 runs).

StartRunBatch validates common fields synchronously and returns immediately with a batch ID and status CREATING. The batch transitions to PENDING once initial setup completes. Runs are then submitted gradually and asynchronously at a rate governed by your StartRun throughput quota.

Parameters:

  • batch_name (Optional[BatchName], default: None ) –

    An optional user-friendly name for the run batch.

  • request_id (BatchRequestId) –

    A client token used to deduplicate retry requests and prevent duplicate batches from being created.

  • tags (Optional[TagMap], default: None ) –

    Amazon Web Services tags to associate with the batch resource. These tags are not inherited by individual runs. To tag individual runs, use defaultRunSetting.runTags.

  • default_run_setting (DefaultRunSetting) –

    Shared configuration applied to all runs in the batch. See DefaultRunSetting.

  • batch_run_settings (BatchRunSettings) –

    The individual run configurations. Specify exactly one of inlineSettings or s3UriSettings. See BatchRunSettings.

Raises:

Source code in docs_src/capo_omics/_services/omics.py
def start_run_batch(
    self,
    request_id: "capo_omics.types.batch_request_id.BatchRequestId",
    default_run_setting: "capo_omics.types.default_run_setting.DefaultRunSetting",
    batch_run_settings: "capo_omics.types.batch_run_settings.BatchRunSettings",
    *,
    config_overrides: Optional[OmicsClientConfig] = None,
    batch_name: Optional["capo_omics.types.batch_name.BatchName"] = None,
    tags: Optional["capo_omics.types.tag_map.TagMap"] = None,
) -> "capo_omics.types.start_run_batch_response.StartRunBatchResponse":
    """<p>Starts a batch of workflow runs. You can group up to 100,000 runs into a single batch that share a common configuration defined in <code>defaultRunSetting</code>. Per-run overrides can be provided either inline via <code>inlineSettings</code> (up to 100 runs) or via a JSON file stored in Amazon S3 via <code>s3UriSettings</code> (up to 100,000 runs).</p> <p> <code>StartRunBatch</code> validates common fields synchronously and returns immediately with a batch ID and status <code>CREATING</code>. The batch transitions to <code>PENDING</code> once initial setup completes. Runs are then submitted gradually and asynchronously at a rate governed by your <code>StartRun</code> throughput quota.</p>

    Args:
        batch_name: <p>An optional user-friendly name for the run batch.</p>
        request_id: <p>A client token used to deduplicate retry requests and prevent duplicate batches from being created.</p>
        tags: <p>Amazon Web Services tags to associate with the batch resource. These tags are not inherited by individual runs. To tag individual runs, use <code>defaultRunSetting.runTags</code>.</p>
        default_run_setting: <p>Shared configuration applied to all runs in the batch. See <code>DefaultRunSetting</code>.</p>
        batch_run_settings: <p>The individual run configurations. Specify exactly one of <code>inlineSettings</code> or <code>s3UriSettings</code>. See <code>BatchRunSettings</code>.</p>

    Raises:
        capo_omics.errors.access_denied_exception.AccessDeniedException: <p>You do not have sufficient access to perform this action.</p>
        capo_omics.errors.conflict_exception.ConflictException: <p>The request cannot be applied to the target resource in its current state.</p>
        capo_omics.errors.internal_server_exception.InternalServerException: <p>An unexpected error occurred. Try the request again.</p>
        capo_omics.errors.request_timeout_exception.RequestTimeoutException: <p>The request timed out.</p>
        capo_omics.errors.resource_not_found_exception.ResourceNotFoundException: <p>The target resource was not found in the current Region.</p>
        capo_omics.errors.service_quota_exceeded_exception.ServiceQuotaExceededException: <p>The request exceeds a service quota.</p>
        capo_omics.errors.throttling_exception.ThrottlingException: <p>The request was denied due to request throttling.</p>
        capo_omics.errors.validation_exception.ValidationException: <p>The input fails to satisfy the constraints specified by an Amazon Web Services service.</p>
        capo_omics.errors.UnknownServiceError: The service returned an error code this client does not model.
    """

    def _handler(
        req: "OperationRequest[capo_omics.types.start_run_batch_request.StartRunBatchRequest]",
    ) -> OperationResponse[
        "capo_omics.types.start_run_batch_response.StartRunBatchResponse"
    ]:
        import capo_omics._operations.omics.start_run_batch

        output, http_response = (
            capo_omics._operations.omics.start_run_batch.start_run_batch(
                req.options, req.input
            )
        )
        return OperationResponse(output=output, response=http_response)

    interceptors_, options_ = self.operation_options(
        config_overrides, OperationLogging("StartRunBatch")
    )
    input_: capo_omics.types.start_run_batch_request.StartRunBatchRequest = {
        "request_id": request_id,
        "default_run_setting": default_run_setting,
        "batch_run_settings": batch_run_settings,
    }
    if batch_name is not None:
        input_["batch_name"] = batch_name
    if tags is not None:
        input_["tags"] = tags

    response = execute_pipeline(
        OperationRequest(input=input_, options=options_),
        handler=_handler,
        interceptors=list(interceptors_),
    )
    response.response.close()
    return response.output