Skip to content

complete_rollout async

complete_rollout(
    job_arn: JobArn,
    trajectory_id: TrajectoryId,
    *,
    config_overrides: Optional[AsyncSagemakerJobRuntimeClientConfig] = None,
    status: Optional[CompletionStatus] = None,
    client_token: Optional[str] = None,
) -> CompleteRolloutResponse

Marks a rollout as complete, indicating that no further turns will be appended to the trajectory. After calling this operation, the trajectory is sealed and eligible for reward submission via the UpdateReward operation.

Parameters:

  • job_arn (JobArn) –

    The job ARN.

  • trajectory_id (TrajectoryId) –

    The trajectory ID to mark as complete.

  • status (Optional[CompletionStatus], default: None ) –

    The target status for the trajectory. Defaults to READY if not specified. Set to FAILED if the rollout encountered an error and the trajectory should not be used for processing.

  • client_token (Optional[str], default: None ) –

    A unique, case-sensitive identifier that you provide to ensure the idempotency of the request.

Raises:

Examples:

Invoke CompleteRollout Marks a rollout as complete so the trajectory is sealed and eligible for reward submission.

>>> await client.complete_rollout(job_arn='arn:aws:sagemaker:us-east-1:123456789012:job/AgentRFT/my-training-job', trajectory_id='trajectory-001', status='ready')
Source code in docs_src/capo_sagemakerjobruntime/_services/async_sagemaker_job_runtime.py
async def complete_rollout(
    self,
    job_arn: "capo_sagemakerjobruntime.types.job_arn.JobArn",
    trajectory_id: "capo_sagemakerjobruntime.types.trajectory_id.TrajectoryId",
    *,
    config_overrides: Optional[AsyncSagemakerJobRuntimeClientConfig] = None,
    status: Optional[
        "capo_sagemakerjobruntime.types.completion_status.CompletionStatus"
    ] = None,
    client_token: Optional[str] = None,
) -> "capo_sagemakerjobruntime.types.complete_rollout_response.CompleteRolloutResponse":
    """Marks a rollout as complete, indicating that no further turns will be appended to the trajectory. After calling this operation, the trajectory is sealed and eligible for reward submission via the UpdateReward operation.

    Args:
        job_arn: The job ARN.
        trajectory_id: The trajectory ID to mark as complete.
        status: The target status for the trajectory. Defaults to READY if not specified. Set to FAILED if the rollout encountered an error and the trajectory should not be used for processing.
        client_token: A unique, case-sensitive identifier that you provide to ensure the idempotency of the request.

    Raises:
        capo_sagemakerjobruntime.errors.access_denied_exception.AccessDeniedException: You do not have permission to perform this operation.
        capo_sagemakerjobruntime.errors.conflict_exception.ConflictException: The request conflicts with the current state of the resource.
        capo_sagemakerjobruntime.errors.internal_service_error.InternalServiceError: An internal service error occurred. Retry the request.
        capo_sagemakerjobruntime.errors.resource_not_found_exception.ResourceNotFoundException: The specified resource was not found.
        capo_sagemakerjobruntime.errors.service_quota_exceeded_exception.ServiceQuotaExceededException: You have exceeded a service quota.
        capo_sagemakerjobruntime.errors.throttling_exception.ThrottlingException: The request was throttled. Retry the request after a brief wait.
        capo_sagemakerjobruntime.errors.validation_exception.ValidationException: The request is not valid. Check the request syntax and parameters
        capo_sagemakerjobruntime.errors.UnknownServiceError: The service returned an error code this client does not model.

    Examples:
        Invoke CompleteRollout
        Marks a rollout as complete so the trajectory is sealed and eligible for reward submission.

        >>> await client.complete_rollout(job_arn='arn:aws:sagemaker:us-east-1:123456789012:job/AgentRFT/my-training-job', trajectory_id='trajectory-001', status='ready')
    """

    async def _handler(
        req: "AsyncOperationRequest[capo_sagemakerjobruntime.types.complete_rollout_request.CompleteRolloutRequest]",
    ) -> AsyncOperationResponse[
        "capo_sagemakerjobruntime.types.complete_rollout_response.CompleteRolloutResponse"
    ]:
        import capo_sagemakerjobruntime._operations.agentic_rft_runtime_service.complete_rollout

        (
            output,
            http_response,
        ) = await capo_sagemakerjobruntime._operations.agentic_rft_runtime_service.complete_rollout.async_complete_rollout(
            req.options, req.input
        )
        return AsyncOperationResponse(output=output, response=http_response)

    interceptors_, options_ = self.operation_options(
        config_overrides, OperationLogging("CompleteRollout")
    )
    input_: capo_sagemakerjobruntime.types.complete_rollout_request.CompleteRolloutRequest = {
        "job_arn": job_arn,
        "trajectory_id": trajectory_id,
    }
    if status is not None:
        input_["status"] = status
    if client_token is None:
        client_token = str(uuid.uuid4())
    input_["client_token"] = client_token

    response = await aexecute_pipeline(
        AsyncOperationRequest(input=input_, options=options_),
        handler=_handler,
        interceptors=list(interceptors_),
    )
    await response.response.aclose()
    return response.output