V1

agent_common.proto

CreateResultsMetaDataRequest

Request for creating results without data

Field

Type

Label

Description

results

CreateResultsMetaDataRequest.ResultCreate

repeated

The list of results to create.

session_id

string

The session in which create results.

communication_token

string

Communication token received by the worker during task processing

CreateResultsMetaDataRequest.ResultCreate

A result to create.

Field

Type

Label

Description

name

string

The result name. Given by the client.

CreateResultsMetaDataResponse

Response for creating results without data

Field

Type

Label

Description

results

ResultMetaData

repeated

The list of metadata results that were created.

communication_token

string

Communication token received by the worker during task processing

CreateResultsRequest

Request for creating results with data

Field

Type

Label

Description

results

CreateResultsRequest.ResultCreate

repeated

The results to create.

session_id

string

The session in which create results.

communication_token

string

Communication token received by the worker during task processing

CreateResultsRequest.ResultCreate

A result to create.

Field

Type

Label

Description

name

string

The result name. Given by the client.

data

bytes

The actual data of the result.

CreateResultsResponse

Response for creating results without data

Field

Type

Label

Description

results

ResultMetaData

repeated

The raw results that were created.

communication_token

string

Communication token received by the worker during task processing

CreateTaskReply

Field

Type

Label

Description

creation_status_list

CreateTaskReply.CreationStatusList

error

string

communication_token

string

Communication token received by the worker during task processing

CreateTaskReply.CreationStatus

Field

Type

Label

Description

task_info

CreateTaskReply.TaskInfo

error

string

CreateTaskReply.CreationStatusList

Field

Type

Label

Description

creation_statuses

CreateTaskReply.CreationStatus

repeated

CreateTaskReply.TaskInfo

Field

Type

Label

Description

task_id

string

The task ID.

expected_output_keys

string

repeated

The expected output IDs. A task have expected output IDs.

data_dependencies

string

repeated

The data dependencies IDs (inputs). A task have data dependencies.

payload_id

string

Unique ID of the result that will be used as payload. Results are created implicitly.

CreateTaskRequest

Field

Type

Label

Description

init_request

CreateTaskRequest.InitRequest

init_task

armonik.api.grpc.v1.InitTaskRequest

task_payload

armonik.api.grpc.v1.DataChunk

communication_token

string

Communication token received by the worker during task processing

CreateTaskRequest.InitRequest

Field

Type

Label

Description

task_options

armonik.api.grpc.v1.TaskOptions

DataRequest

Request to retrieve data

Field

Type

Label

Description

communication_token

string

Communication token received by the worker during task processing

result_id

string

Id of the result that will be retrieved

DataResponse

Response when data is available in the shared folder

Field

Type

Label

Description

result_id

string

Id of the result that will be retrieved

NotifyResultDataRequest

Request for notifying results data are available in files.

Field

Type

Label

Description

ids

NotifyResultDataRequest.ResultIdentifier

repeated

The possible messages that constitute a UploadResultDataRequest

  • The identifier of the result to which add data. | | communication_token | string | | Communication token received by the worker during task processing |

NotifyResultDataRequest.ResultIdentifier

The metadata to identify the result to update.

Field

Type

Label

Description

session_id

string

The session of the result.

result_id

string

The ID of the result.

NotifyResultDataResponse

Response for notifying data file availability for result Received when data are successfully copied to the ObjectStorage

Field

Type

Label

Description

result_ids

string

repeated

The Id of the result to which data were added

ResultMetaData

Result metadata

Field

Type

Label

Description

session_id

string

The session ID.

result_id

string

The result ID.

name

string

The result name.

status

armonik.api.grpc.v1.result_status.ResultStatus

The result status.

created_at

google.protobuf.Timestamp

The result creation date.

SubmitTasksRequest

Request to create tasks.

Field

Type

Label

Description

session_id

string

The session ID.

task_options

armonik.api.grpc.v1.TaskOptions

The options for the tasks. Each task will have the same. Options are merged with the one from the session.

task_creations

SubmitTasksRequest.TaskCreation

repeated

Task creation requests.

communication_token

string

Communication token received by the worker during task processing

SubmitTasksRequest.TaskCreation

Field

Type

Label

Description

expected_output_keys

string

repeated

Unique ID of the results that will be produced by the task. Results must be created using ResultsService.

data_dependencies

string

repeated

Unique ID of the results that will be used as datadependencies. Results must be created using ResultsService.

payload_id

string

Unique ID of the result that will be used as payload. Result must be created using ResultsService.

task_options

armonik.api.grpc.v1.TaskOptions

Optionnal task options.

SubmitTasksResponse

Response to create tasks.

expected_output_ids and data_dependencies must be created through ResultsService.

Remark : this may have to be enriched to a better management of errors but will the client application be able to manage a missing data dependency or expected output ?

Field

Type

Label

Description

task_infos

SubmitTasksResponse.TaskInfo

repeated

List of task infos if submission successful, else throw gRPC exception.

communication_token

string

Communication token received by the worker during task processing

SubmitTasksResponse.TaskInfo

Field

Type

Label

Description

task_id

string

The task ID.

expected_output_ids

string

repeated

The expected output IDs. A task has expected output IDs.

data_dependencies

string

repeated

The data dependencies IDs (inputs). A task has data dependencies.

payload_id

string

Unique ID of the result that will be used as payload. Results are created implicitly.

Top

agent_service.proto

Agent

Method Name

Request Type

Response Type

Description

CreateTask

CreateTaskRequest stream

CreateTaskReply

CreateResultsMetaData

CreateResultsMetaDataRequest

CreateResultsMetaDataResponse

Create the metadata of multiple results at once Data have to be uploaded separately

CreateResults

CreateResultsRequest

CreateResultsResponse

Create one result with data included in the request

NotifyResultData

NotifyResultDataRequest

NotifyResultDataResponse

Notify Agent that a data file representing the Result to upload is available in the shared folder The name of the file should be the result id Blocks until data are stored in Object Storage

SubmitTasks

SubmitTasksRequest

SubmitTasksResponse

Create tasks metadata and submit task for processing.

GetResourceData

DataRequest

DataResponse

Retrieve Resource Data from the Agent Data is stored in the shared folder between Agent and Worker as a file with the result id as name Blocks until data are available in the shared folder

GetCommonData

DataRequest

DataResponse

Retrieve Resource Data from the Agent Data is stored in the shared folder between Agent and Worker as a file with the result id as name Blocks until data are available in the shared folder

GetDirectData

DataRequest

DataResponse

Retrieve Resource Data from the Agent Data is stored in the shared folder between Agent and Worker as a file with the result id as name Blocks until data are available in the shared folder

Top

applications_common.proto

Messages describing applications and associated requests and responses.

ApplicationRaw

A raw application object.

Used when a list of applications is requested.

Field

Type

Label

Description

name

string

Application name.

version

string

Application version.

namespace

string

Application namespace used in the excecuted class.

service

string

Application service used in the excecuted class.

ListApplicationsRequest

Request to list applications.

Use pagination, filtering and sorting.

Field

Type

Label

Description

page

int32

The page number. Start at 0.

page_size

int32

Number of items per page.

filters

Filters

The filters.

sort

ListApplicationsRequest.Sort

The sort.

Must be set for every request. |

ListApplicationsRequest.Sort

Represents the sort object.

Field

Type

Label

Description

fields

ApplicationField

repeated

Fields to order by.

direction

armonik.api.grpc.v1.sort_direction.SortDirection

The order direction.

ListApplicationsResponse

Response to list applications.

Use pagination, filtering and sorting from the request. Return a list of raw applications.

Field

Type

Label

Description

applications

ApplicationRaw

repeated

page

int32

The current page. Start at 0.

page_size

int32

Number of items per page.

total

int32

Total number of items.

Top

applications_fields.proto

ApplicationField

Field

Type

Label

Description

application_field

ApplicationRawField

ApplicationRawField

This message is used to wrap the enum in order to facilitate the ‘oneOf’ generation.

Field

Type

Label

Description

field

ApplicationRawEnumField

ApplicationRawEnumField

Represents every available field in an application.

Name

Number

Description

APPLICATION_RAW_ENUM_FIELD_UNSPECIFIED

0

Unspecified

APPLICATION_RAW_ENUM_FIELD_NAME

1

Application name.

APPLICATION_RAW_ENUM_FIELD_VERSION

2

Application version.

APPLICATION_RAW_ENUM_FIELD_NAMESPACE

3

Application namespace.

APPLICATION_RAW_ENUM_FIELD_SERVICE

4

Application service.

Top

applications_filters.proto

FilterField

Field

Type

Label

Description

field

ApplicationField

filter_string

armonik.api.grpc.v1.FilterString

Filters

Field

Type

Label

Description

or

FiltersAnd

repeated

FiltersAnd

Field

Type

Label

Description

and

FilterField

repeated

Top

applications_service.proto

Applications related methods within a service.

Applications

Service for handling applications.

Method Name

Request Type

Response Type

Description

ListApplications

ListApplicationsRequest

ListApplicationsResponse

Get a applications list using pagination, filters and sorting;

Top

auth_common.proto

Messages describing authentication and associated requests and responses.

GetCurrentUserRequest

Request to get current user informations.

GetCurrentUserResponse

Response to get current user informations.

Field

Type

Label

Description

user

User

Return current user. If auth failed, must throw a gRPC error.

User

A user.

Field

Type

Label

Description

username

string

Username. If authentication is disabled, must be set to ‘Anonymous’

roles

string

repeated

Roles. If authentication is disabled, must return [].

permissions

string

repeated

Permissions. If authentication is disabled, must return every permissions.

Top

auth_service.proto

Authentication related methods within a service.

Authentication

Service for authentication management.

Method Name

Request Type

Response Type

Description

GetCurrentUser

GetCurrentUserRequest

GetCurrentUserResponse

Get current user

Top

events_common.proto

EventSubscriptionRequest

Request to subscribe to the event stream.

Field

Type

Label

Description

session_id

string

Id of the session that will be used to subscribe events for. *

tasks_filters

armonik.api.grpc.v1.tasks.Filters

Filter for task related events.

results_filters

armonik.api.grpc.v1.results.Filters

Filter for result related events.

returned_events

EventsEnum

repeated

Filter the type of events to return. Empty means all.

EventSubscriptionResponse

Response containing the update event.

Field

Type

Label

Description

session_id

string

Id of the session that will be used to subscribe events for. *

task_status_update

EventSubscriptionResponse.TaskStatusUpdate

An update to the status of a task. *

result_status_update

EventSubscriptionResponse.ResultStatusUpdate

An update to the status of a result. *

result_owner_update

EventSubscriptionResponse.ResultOwnerUpdate

An update to the owner of a result. *

new_task

EventSubscriptionResponse.NewTask

A new task in ArmoniK. *

new_result

EventSubscriptionResponse.NewResult

A new result in ArmoniK. *

EventSubscriptionResponse.NewResult

Represents the submission of a new result in ArmoniK.

Field

Type

Label

Description

result_id

string

The result id. *

owner_id

string

The owner task id. *

status

armonik.api.grpc.v1.result_status.ResultStatus

The result status. *

EventSubscriptionResponse.NewTask

Represents the submission of a new task in ArmoniK.

Field

Type

Label

Description

task_id

string

The task id. *

payload_id

string

The payload id. *

origin_task_id

string

The task id before retry. *

status

armonik.api.grpc.v1.task_status.TaskStatus

The task status. *

expected_output_keys

string

repeated

The keys of the expected outputs *

data_dependencies

string

repeated

The keys of the data dependencies. *

retry_of_ids

string

repeated

The list of retried tasks from the first retry to the current. *

parent_task_ids

string

repeated

The parent task IDs. A tasks can be a child of another task. *

EventSubscriptionResponse.ResultOwnerUpdate

Represents an update to the owner task id of a result.

Field

Type

Label

Description

result_id

string

The result id. *

previous_owner_id

string

The previous owner id. *

current_owner_id

string

The current owner id. *

EventSubscriptionResponse.ResultStatusUpdate

Represents an update to the status of a result.

Field

Type

Label

Description

result_id

string

The result id. *

status

armonik.api.grpc.v1.result_status.ResultStatus

The result status. *

EventSubscriptionResponse.TaskStatusUpdate

Represents an update to the status of a task.

Field

Type

Label

Description

task_id

string

The task id. *

status

armonik.api.grpc.v1.task_status.TaskStatus

The task status. *

EventsEnum

Represents the events that can be returned in the EventSubscriptionResponse

Name

Number

Description

EVENTS_ENUM_UNSPECIFIED

0

Unspecified

EVENTS_ENUM_NEW_TASK

1

New task

EVENTS_ENUM_TASK_STATUS_UPDATE

2

Task status update

EVENTS_ENUM_NEW_RESULT

3

New restult

EVENTS_ENUM_RESULT_STATUS_UPDATE

4

Result status update

EVENTS_ENUM_RESULT_OWNER_UPDATE

5

Result owner update

Top

events_service.proto

Events subscription related methods within a service.

This service can be used to receive events related to the update of tasks and results whithin a session. The endpoint can be called to listen to the modifications of multiple sessions if needed.

Note: As for now, all the events of a session will be sent whithout filtering. It is possible that the API will evolve to a more refined way to filter the events to be received.

Events

Service for subscribing to events representing modifications to ArmoniK result and task data

Method Name

Request Type

Response Type

Description

GetEvents

EventSubscriptionRequest

EventSubscriptionResponse stream

Get events that represents updates of result and tasks data.

Top

filters_common.proto

FilterArray

Field

Type

Label

Description

value

string

operator

FilterArrayOperator

FilterBoolean

Field

Type

Label

Description

value

bool

operator

FilterBooleanOperator

FilterDate

Field

Type

Label

Description

value

google.protobuf.Timestamp

operator

FilterDateOperator

FilterDuration

Field

Type

Label

Description

value

google.protobuf.Duration

operator

FilterDurationOperator

FilterNumber

Field

Type

Label

Description

value

int64

operator

FilterNumberOperator

FilterString

Field

Type

Label

Description

value

string

operator

FilterStringOperator

FilterArrayOperator

Name

Number

Description

FILTER_ARRAY_OPERATOR_CONTAINS

0

Contains

FILTER_ARRAY_OPERATOR_NOT_CONTAINS

1

Not contains

FilterBooleanOperator

Name

Number

Description

FILTER_BOOLEAN_OPERATOR_IS

0

Is

FilterDateOperator

Name

Number

Description

FILTER_DATE_OPERATOR_EQUAL

0

Equal

FILTER_DATE_OPERATOR_NOT_EQUAL

1

Not equal

FILTER_DATE_OPERATOR_BEFORE

2

Before

FILTER_DATE_OPERATOR_BEFORE_OR_EQUAL

3

Before or equal

FILTER_DATE_OPERATOR_AFTER_OR_EQUAL

4

After or equal

FILTER_DATE_OPERATOR_AFTER

5

After

FilterDurationOperator

Name

Number

Description

FILTER_DURATION_OPERATOR_EQUAL

0

Equal

FILTER_DURATION_OPERATOR_NOT_EQUAL

1

Not equal

FILTER_DURATION_OPERATOR_SHORTER_THAN

2

Shorter than

FILTER_DURATION_OPERATOR_SHORTER_THAN_OR_EQUAL

3

Shorter than or equal

FILTER_DURATION_OPERATOR_LONGER_THAN_OR_EQUAL

4

Longer than or equal

FILTER_DURATION_OPERATOR_LONGER_THAN

5

Longer than

FilterNumberOperator

Name

Number

Description

FILTER_NUMBER_OPERATOR_EQUAL

0

Equal

FILTER_NUMBER_OPERATOR_NOT_EQUAL

1

Not equal

FILTER_NUMBER_OPERATOR_LESS_THAN

2

Less than

FILTER_NUMBER_OPERATOR_LESS_THAN_OR_EQUAL

3

Less than or equal

FILTER_NUMBER_OPERATOR_GREATER_THAN_OR_EQUAL

4

Greater than or equal

FILTER_NUMBER_OPERATOR_GREATER_THAN

5

Greater than

FilterStatusOperator

Name

Number

Description

FILTER_STATUS_OPERATOR_EQUAL

0

Equal

FILTER_STATUS_OPERATOR_NOT_EQUAL

1

Not equal

FilterStringOperator

Name

Number

Description

FILTER_STRING_OPERATOR_EQUAL

0

Equal

FILTER_STRING_OPERATOR_NOT_EQUAL

1

Not equal

FILTER_STRING_OPERATOR_CONTAINS

2

Contains

FILTER_STRING_OPERATOR_NOT_CONTAINS

3

Not contains

FILTER_STRING_OPERATOR_STARTS_WITH

4

Starts with

FILTER_STRING_OPERATOR_ENDS_WITH

5

Ends with

Top

health_checks_common.proto

CheckHealthRequest

Request to check if all services are healthy

CheckHealthResponse

Response to check if all services are healthy

Field

Type

Label

Description

services

CheckHealthResponse.ServiceHealth

repeated

CheckHealthResponse.ServiceHealth

Field

Type

Label

Description

name

string

Name of the service (e.g. “control_plane”, “database”, “redis”)

message

string

healthy

HealthStatusEnum

HealthStatusEnum

Represents the available health status

Name

Number

Description

HEALTH_STATUS_ENUM_UNSPECIFIED

0

Unspecified

HEALTH_STATUS_ENUM_HEALTHY

1

Service is working without issues

HEALTH_STATUS_ENUM_DEGRADED

2

Service has issues but still works

HEALTH_STATUS_ENUM_UNHEALTHY

3

Service does not work

Top

health_checks_service.proto

HealthChecksService

The HealthChecksService provides methods to verify the health of the cluster.

Method Name

Request Type

Response Type

Description

CheckHealth

CheckHealthRequest

CheckHealthResponse

Checks the health of the cluster. This can be used to verify that the cluster is up and running.

Top

objects.proto

Configuration

Field

Type

Label

Description

data_chunk_max_size

int32

Count

Field

Type

Label

Description

values

StatusCount

repeated

DataChunk

Field

Type

Label

Description

data

bytes

data_complete

bool

Empty

Error

Field

Type

Label

Description

task_status

task_status.TaskStatus

detail

string

InitKeyedDataStream

Field

Type

Label

Description

key

string

last_result

bool

InitTaskRequest

Field

Type

Label

Description

header

TaskRequestHeader

last_task

bool

Output

Field

Type

Label

Description

ok

Empty

error

Output.Error

Output.Error

Field

Type

Label

Description

details

string

ResultRequest

Field

Type

Label

Description

session

string

result_id

string

Session

Field

Type

Label

Description

id

string

StatusCount

Field

Type

Label

Description

status

task_status.TaskStatus

count

int32

TaskError

Field

Type

Label

Description

task_id

string

errors

Error

repeated

TaskId

Field

Type

Label

Description

session

string

task

string

TaskIdList

Field

Type

Label

Description

task_ids

string

repeated

TaskIdWithStatus

Field

Type

Label

Description

task_id

TaskId

status

task_status.TaskStatus

TaskList

Field

Type

Label

Description

task_ids

TaskId

repeated

TaskOptions

Field

Type

Label

Description

options

TaskOptions.OptionsEntry

repeated

max_duration

google.protobuf.Duration

max_retries

int32

priority

int32

partition_id

string

application_name

string

application_version

string

application_namespace

string

application_service

string

engine_type

string

TaskOptions.OptionsEntry

Field

Type

Label

Description

key

string

value

string

TaskOutputRequest

Field

Type

Label

Description

session

string

task_id

string

TaskRequest

Field

Type

Label

Description

expected_output_keys

string

repeated

Given names to the expected outputs that will be created implicitly. IDs are returned after task creation

data_dependencies

string

repeated

IDs of the results that will be used as data dependency.

payload

bytes

Content of the payload for the task.

payload_name

string

Name that will be associated to the result created for the payload. Optionnal

TaskRequestHeader

Field

Type

Label

Description

expected_output_keys

string

repeated

Given names to the expected outputs that will be created implicitly. IDs are returned after task creation

data_dependencies

string

repeated

IDs of the results that will be used as data dependency.

Top

partitions_common.proto

GetPartitionRequest

Request to get a partition.

Field

Type

Label

Description

id

string

The partition ID.

GetPartitionResponse

Response to get a partition.

Return a raw partition.

Field

Type

Label

Description

partition

PartitionRaw

The raw partition.

ListPartitionsRequest

Request to list partitions.

Field

Type

Label

Description

page

int32

The page number. Start at 0.

page_size

int32

The number of items per page.

filters

Filters

The filter.

sort

ListPartitionsRequest.Sort

The sort.

Must be set for every request. |

ListPartitionsRequest.Sort

Represents the sort object.

Field

Type

Label

Description

field

PartitionField

The field to sort on.

direction

armonik.api.grpc.v1.sort_direction.SortDirection

The sort direction.

ListPartitionsResponse

Response to list partitions.

Use pagination, filtering and sorting from the request. Retunr a list of raw partitions.

Field

Type

Label

Description

partitions

PartitionRaw

repeated

The list of raw partitions.

page

int32

The page number. Start at 0.

page_size

int32

The page size.

total

int32

The total number of partitions.

PartitionRaw

A raw partition object.

Used when a list or a single partition is returned.

Field

Type

Label

Description

id

string

The partition ID.

parent_partition_ids

string

repeated

The parent partition IDs.

pod_reserved

int64

Whether the partition is reserved for pods.

pod_max

int64

The maximum number of pods that can be used by sessions using the partition.

pod_configuration

PartitionRaw.PodConfigurationEntry

repeated

The pod configuration.

preemption_percentage

int64

The percentage of the partition that can be preempted.

priority

int64

The priority of the partition.

PartitionRaw.PodConfigurationEntry

Field

Type

Label

Description

key

string

value

string

Top

partitions_fields.proto

PartitionField

Field

Type

Label

Description

partition_raw_field

PartitionRawField

The partition raw field.

PartitionRawField

This message is used to wrap the enum in order to facilitate the ‘oneOf’ generation.

Field

Type

Label

Description

field

PartitionRawEnumField

PartitionRawEnumField

Represents every available field in a partition.

Name

Number

Description

PARTITION_RAW_ENUM_FIELD_UNSPECIFIED

0

Unspecified.

PARTITION_RAW_ENUM_FIELD_ID

1

The partition ID.

PARTITION_RAW_ENUM_FIELD_PARENT_PARTITION_IDS

2

The parent partition IDs.

PARTITION_RAW_ENUM_FIELD_POD_RESERVED

3

Whether the partition is reserved for pods.

PARTITION_RAW_ENUM_FIELD_POD_MAX

4

The maximum number of pods that can be used by sessions using the partition.

PARTITION_RAW_ENUM_FIELD_PREEMPTION_PERCENTAGE

5

The percentage of the partition that can be preempted.

PARTITION_RAW_ENUM_FIELD_PRIORITY

6

The priority of the partition.

Top

partitions_filters.proto

FilterField

Field

Type

Label

Description

field

PartitionField

filter_string

armonik.api.grpc.v1.FilterString

filter_number

armonik.api.grpc.v1.FilterNumber

filter_boolean

armonik.api.grpc.v1.FilterBoolean

filter_array

armonik.api.grpc.v1.FilterArray

Filters

Field

Type

Label

Description

or

FiltersAnd

repeated

FiltersAnd

Field

Type

Label

Description

and

FilterField

repeated

Top

partitions_service.proto

Partitions

The PartitionsService provides methods to manage partitions.

Method Name

Request Type

Response Type

Description

ListPartitions

ListPartitionsRequest

ListPartitionsResponse

Get a partitions list using pagination, filters and sorting.

GetPartition

GetPartitionRequest

GetPartitionResponse

Get a partition by its ID.

Top

result_status.proto

ResultStatus

Name

Number

Description

RESULT_STATUS_UNSPECIFIED

0

Result is in an unspecified state.

RESULT_STATUS_CREATED

1

Result is created and task is created, submitted or dispatched.

RESULT_STATUS_COMPLETED

2

Result is completed with a completed task.

RESULT_STATUS_ABORTED

3

Result is aborted.

RESULT_STATUS_DELETED

4

Result is completed, but data has been deleted from object storage.

RESULT_STATUS_NOTFOUND

127

NOTFOUND is encoded as 127 to make it small while still leaving enough room for future status extensions

see https://developers.google.com/protocol-buffers/docs/proto3#enum |

Top

results_common.proto

CreateResultsMetaDataRequest

Request for creating results without data

Field

Type

Label

Description

results

CreateResultsMetaDataRequest.ResultCreate

repeated

The list of results to create.

session_id

string

The session in which create results.

CreateResultsMetaDataRequest.ResultCreate

A result to create.

Field

Type

Label

Description

name

string

The result name. Given by the client.

manual_deletion

bool

If the user is responsible for the deletion of the data in the underlying object storage.

CreateResultsMetaDataResponse

Response for creating results without data

Field

Type

Label

Description

results

ResultRaw

repeated

The list of raw results that were created.

CreateResultsRequest

Request for creating results with data

Field

Type

Label

Description

results

CreateResultsRequest.ResultCreate

repeated

Results to create.

session_id

string

The session in which create results.

CreateResultsRequest.ResultCreate

A result to create.

Field

Type

Label

Description

name

string

The result name. Given by the client.

data

bytes

The actual data of the result.

manual_deletion

bool

If the user is responsible for the deletion of the data in the underlying object storage.

CreateResultsResponse

Response for creating results without data

Field

Type

Label

Description

results

ResultRaw

repeated

The raw results that were created.

DeleteResultsDataRequest

Request deleting data from results results but keeping metadata

Field

Type

Label

Description

session_id

string

The session of the results.

result_id

string

repeated

The ID of the results to delete.

DeleteResultsDataResponse

Response deleting data from results results but keeping metadata

Field

Type

Label

Description

session_id

string

The session of the results.

result_id

string

repeated

The ID of the deleted results.

DownloadResultDataRequest

Request for getting a result

Field

Type

Label

Description

session_id

string

The session of the result.

result_id

string

The ID of the result.

DownloadResultDataResponse

Response for creating results without data

Field

Type

Label

Description

data_chunk

bytes

The possible messages that constitute a UploadResultDataRequest Get the data chunks of the result

  • A chunk of data. |

GetOwnerTaskIdRequest

Request for getting the id of the task that should create this result

Field

Type

Label

Description

session_id

string

The session ID.

result_id

string

repeated

The list of result ID/name.

GetOwnerTaskIdResponse

Response for getting the id of the task that should create this result

Field

Type

Label

Description

result_task

GetOwnerTaskIdResponse.MapResultTask

repeated

session_id

string

The session ID.

GetOwnerTaskIdResponse.MapResultTask

Field

Type

Label

Description

result_id

string

The result ID/name.

task_id

string

The owner task ID associated to the result.

GetResultRequest

Request to get an result.

Field

Type

Label

Description

result_id

string

Result id. Must fail when name is empty. *

GetResultResponse

Response to get an result.

Field

Type

Label

Description

result

ResultRaw

The result.

ImportResultsDataRequest

Request importing existing data from the object storage

Field

Type

Label

Description

session_id

string

The session of the results.

results

ImportResultsDataRequest.ResultOpaqueId

repeated

The opaque ids associated to the results to import.

ImportResultsDataRequest.ResultOpaqueId

Field

Type

Label

Description

result_id

string

The ID of the result.

opaque_id

bytes

ID of the data in the underlying object storage.

ImportResultsDataResponse

Response importing existing data from the object storage

Field

Type

Label

Description

results

ResultRaw

repeated

The updated results.

ListResultsRequest

Request to list results.

Use pagination, filtering and sorting.

Field

Type

Label

Description

page

int32

The page number. Start at 0.

page_size

int32

The page size.

filters

Filters

The filters.

sort

ListResultsRequest.Sort

The sort.

Must be set for every request. |

ListResultsRequest.Sort

Represents the sort object.

Field

Type

Label

Description

field

ResultField

The field to use to sort results.

direction

armonik.api.grpc.v1.sort_direction.SortDirection

The direction to use to sort results.

ListResultsResponse

Response to list results.

Use pagination, filtering and sorting from the request. Retunr a list of raw results.

Field

Type

Label

Description

results

ResultRaw

repeated

The list of raw results.

page

int32

The page number. Start at 0.

page_size

int32

The page size.

total

int32

The total number of results.

ResultRaw

A raw result object.

Used when a list or a single result is returned.

Field

Type

Label

Description

session_id

string

The session ID.

name

string

The result name. Given by the client.

owner_task_id

string

The owner task ID.

status

armonik.api.grpc.v1.result_status.ResultStatus

The result status.

created_at

google.protobuf.Timestamp

The result creation date.

completed_at

google.protobuf.Timestamp

The result completion date.

result_id

string

The result ID. Uniquely generated by the server.

size

int64

The size of the Result Data.

created_by

string

The ID of the Task that as submitted this result.

opaque_id

bytes

ID of the data in the underlying object storage.

manual_deletion

bool

If the user is responsible for the deletion of the data in the underlying object storage.

ResultsServiceConfigurationResponse

Response for obtaining results service configuration

Field

Type

Label

Description

data_chunk_max_size

int32

Maximum size supported by a data chunk for the result service

UploadResultDataRequest

Request for uploading results data through stream. Data must be sent in multiple chunks. Only one result can be uploaded.

Field

Type

Label

Description

id

UploadResultDataRequest.ResultIdentifier

The identifier of the result to which add data.

data_chunk

bytes

A chunk of data.

UploadResultDataRequest.ResultIdentifier

The metadata to identify the result to update.

Field

Type

Label

Description

session_id

string

The session of the result.

result_id

string

The ID of the result.

UploadResultDataResponse

Response for creating results without data

Field

Type

Label

Description

result

ResultRaw

The metadata of the updated result that was updated.

WatchResultRequest

Request to watch result states It contains the list of result ids you want to watch and some options to filter out some events. Chunking is achieved by sending multiple messages with different result ids. It is the responsability of the client to chunk the messages properly and avoid messages too large.

Field

Type

Label

Description

fetch_statuses

armonik.api.grpc.v1.result_status.ResultStatus

repeated

list of statuses to check results against for the initial fetch

watch_statuses

armonik.api.grpc.v1.result_status.ResultStatus

repeated

list of statuses to check results against for the watch

result_ids

string

repeated

result ids to fetch/watch

WatchResultResponse

List of Result statuses Result Ids are grouped by status. One message contains result Ids that have the same status. Chunking is achieved by receiving several messages with the same status and the list of ids in multiple parts. As chunking is implicit, there is no way to distinguish between chunked messages and actually separate messages.

Field

Type

Label

Description

status

armonik.api.grpc.v1.result_status.ResultStatus

Status of the results

result_ids

string

repeated

List of result ids that triggered the event

Top

results_fields.proto

ResultField

Field

Type

Label

Description

result_raw_field

ResultRawField

The field to use to sort results.

ResultRawField

This message is used to wrap the enum in order to facilitate the ‘oneOf’ generation.

Field

Type

Label

Description

field

ResultRawEnumField

ResultRawEnumField

Represents every available field in a result.

Name

Number

Description

RESULT_RAW_ENUM_FIELD_UNSPECIFIED

0

The default value.

RESULT_RAW_ENUM_FIELD_SESSION_ID

1

The session ID.

RESULT_RAW_ENUM_FIELD_NAME

2

The result name.

RESULT_RAW_ENUM_FIELD_OWNER_TASK_ID

3

The owner task ID.

RESULT_RAW_ENUM_FIELD_STATUS

4

The result status.

RESULT_RAW_ENUM_FIELD_CREATED_AT

5

The result creation date.

RESULT_RAW_ENUM_FIELD_COMPLETED_AT

6

The result completion date.

RESULT_RAW_ENUM_FIELD_RESULT_ID

7

The result ID.

RESULT_RAW_ENUM_FIELD_SIZE

8

The size of the result.

RESULT_RAW_ENUM_FIELD_CREATED_BY

9

The size of the result.

RESULT_RAW_ENUM_FIELD_OPAQUE_ID

10

The ID of the data in the underlying object storage.

RESULT_RAW_ENUM_FIELD_MANUAL_DELETION

11

If the user is responsible for the deletion of the data in the underlying object storage.

Top

results_filters.proto

FilterField

Field

Type

Label

Description

field

ResultField

filter_string

armonik.api.grpc.v1.FilterString

filter_date

armonik.api.grpc.v1.FilterDate

filter_array

armonik.api.grpc.v1.FilterArray

filter_status

FilterStatus

filter_number

armonik.api.grpc.v1.FilterNumber

FilterStatus

Field

Type

Label

Description

value

armonik.api.grpc.v1.result_status.ResultStatus

operator

armonik.api.grpc.v1.FilterStatusOperator

Filters

Field

Type

Label

Description

or

FiltersAnd

repeated

FiltersAnd

Field

Type

Label

Description

and

FilterField

repeated

Top

results_service.proto

Results

The ResultsService provides methods for interacting with results

Method Name

Request Type

Response Type

Description

ListResults

ListResultsRequest

ListResultsResponse

Get a results list using pagination, filters and sorting

GetResult

GetResultRequest

GetResultResponse

Get a result by id.

GetOwnerTaskId

GetOwnerTaskIdRequest

GetOwnerTaskIdResponse

Get the id of the task that should produce the result

CreateResultsMetaData

CreateResultsMetaDataRequest

CreateResultsMetaDataResponse

Create the metadata of multiple results at once Data have to be uploaded separately

CreateResults

CreateResultsRequest

CreateResultsResponse

Create one result with data included in the request

UploadResultData

UploadResultDataRequest stream

UploadResultDataResponse

Upload data for result with stream

DownloadResultData

DownloadResultDataRequest

DownloadResultDataResponse stream

Retrieve data

DeleteResultsData

DeleteResultsDataRequest

DeleteResultsDataResponse

Delete data from multiple results

ImportResultsData

ImportResultsDataRequest

ImportResultsDataResponse

Import existing data from the object storage into existing results

GetServiceConfiguration

.armonik.api.grpc.v1.Empty

ResultsServiceConfigurationResponse

Get the configuration of the service

WatchResults

WatchResultRequest stream

WatchResultResponse stream

This endpoint allows a user to watch a list of results and be notified when there is any change. The user sends the list of ids they want to watch. The submitter will then send the statuses for all requested ids immediately and keep the stream open. Ids not present in DB will be returned at that time with the special state NOTFOUND. The submitter will send updates to the client via the opened stream. Any reply can be implicitely chunked if there are too many event to report at the same time (or for the first reply). It is possible to filter out specific statuses from events.

Top

session_status.proto

Status of a session.

SessionStatus

Session status.

Name

Number

Description

SESSION_STATUS_UNSPECIFIED

0

Session is in an unknown state.

SESSION_STATUS_RUNNING

1

Session is open and accepting tasks for execution.

SESSION_STATUS_CANCELLED

2

Session is cancelled. No more tasks can be submitted and no more tasks will be executed.

SESSION_STATUS_PAUSED

3

Session is paused. Tasks can be submitted but no more new tasks will be executed. Already running tasks will continue until they finish.

SESSION_STATUS_CLOSED

4

Session is closed. No more tasks can be submitted and executed.

SESSION_STATUS_PURGED

5

Session is purged. No more tasks can be submitted and executed. Results data will be deleted.

SESSION_STATUS_DELETED

6

Session is deleted. No more tasks can be submitted and executed. Sessions, tasks and results metadata associated to the session will be deleted.

Top

sessions_common.proto

Messages describing sessions and associated requests and responses.

CancelSessionRequest

Request for cancelling a single session.

Field

Type

Label

Description

session_id

string

The session ID.

CancelSessionResponse

Response for cancelling a single session.

Return a raw session.

Field

Type

Label

Description

session

SessionRaw

The session.

CloseSessionRequest

Request for closing a single session.

Field

Type

Label

Description

session_id

string

The session ID.

CloseSessionResponse

Response for closing a single session.

Return a raw session.

Field

Type

Label

Description

session

SessionRaw

The session.

CreateSessionReply

Reply after session creation. We have this reply in case of success. When the session creation is not successful, there is an rpc exception.

Field

Type

Label

Description

session_id

string

Session id of the created session if successful

CreateSessionRequest

Request for creating session.

Field

Type

Label

Description

default_task_option

armonik.api.grpc.v1.TaskOptions

Default tasks options for tasks in the session

partition_ids

string

repeated

List of partitions allowed during the session

DeleteSessionRequest

Request for deleting a single session.

Field

Type

Label

Description

session_id

string

The session ID.

DeleteSessionResponse

Response for deleting a single session.

Return a raw session.

Field

Type

Label

Description

session

SessionRaw

The session.

GetSessionRequest

Request for getting a single session.

Field

Type

Label

Description

session_id

string

The session ID.

GetSessionResponse

Response for getting a single session.

Return a raw session.

Field

Type

Label

Description

session

SessionRaw

The session.

ListSessionsRequest

Request to list sessions.

Use pagination, filtering and sorting.

Field

Type

Label

Description

page

int32

The page number. Start at 0.

page_size

int32

The page size.

filters

Filters

The filters.

sort

ListSessionsRequest.Sort

The sort.

Must be set for every request. | | with_task_options | bool | | Flag to tell if server must return task options in summary sessions |

ListSessionsRequest.Sort

Represents the sort object.

Field

Type

Label

Description

field

SessionField

The field to sort on.

direction

armonik.api.grpc.v1.sort_direction.SortDirection

The sort direction.

ListSessionsResponse

Response to list sessions.

Use pagination, filtering and sorting from the request. Return a list of summary sessions.

Field

Type

Label

Description

sessions

SessionRaw

repeated

The list of sessions.

page

int32

The current page. Start at 0.

page_size

int32

The page size.

total

int32

The total number of sessions.

PauseSessionRequest

Request for pausing a single session.

Field

Type

Label

Description

session_id

string

The session ID.

PauseSessionResponse

Response for pausing a single session.

Return a raw session.

Field

Type

Label

Description

session

SessionRaw

The session.

PurgeSessionRequest

Request for purging a single session.

Field

Type

Label

Description

session_id

string

The session ID.

PurgeSessionResponse

Response for purging a single session.

Return a raw session.

Field

Type

Label

Description

session

SessionRaw

The session.

ResumeSessionRequest

Request for resuming a single session.

Field

Type

Label

Description

session_id

string

The session ID.

ResumeSessionResponse

Response for resuming a single session.

Return a raw session.

Field

Type

Label

Description

session

SessionRaw

The session.

SessionRaw

A raw session object.

Field

Type

Label

Description

session_id

string

The session ID.

status

armonik.api.grpc.v1.session_status.SessionStatus

The session status.

client_submission

bool

Whether clients can submit tasks in the session.

worker_submission

bool

Whether workers can submit tasks in the session.

partition_ids

string

repeated

The partition IDs.

options

armonik.api.grpc.v1.TaskOptions

The task options. In fact, these are used as default value in child tasks.

created_at

google.protobuf.Timestamp

The creation date.

cancelled_at

google.protobuf.Timestamp

The cancellation date. Only set when status is ‘cancelled’.

closed_at

google.protobuf.Timestamp

The closure date. Only set when status is ‘closed’.

purged_at

google.protobuf.Timestamp

The purge date. Only set when status is ‘purged’.

deleted_at

google.protobuf.Timestamp

The deletion date. Only set when status is ‘deleted’.

duration

google.protobuf.Duration

The duration. Only set when status is ‘cancelled’ and ‘closed’.

StopSubmissionRequest

Request for stopping new tasks submissions from clients or workers in the given session.

Field

Type

Label

Description

session_id

string

The session ID.

client

bool

Whether to stop client submission.

worker

bool

Whether to stop worker submission.

StopSubmissionResponse

Response for stopping new tasks submissions from clients or workers in the given session.

Return a raw session.

Field

Type

Label

Description

session

SessionRaw

The session.

Top

sessions_fields.proto

SessionField

Field

Type

Label

Description

session_raw_field

SessionRawField

task_option_field

TaskOptionField

The task option field.

task_option_generic_field

TaskOptionGenericField

The task option generic field.

SessionRawField

Field

Type

Label

Description

field

SessionRawEnumField

TaskOptionField

This message is used to wrap the enum in order to facilitate the ‘oneOf’ generation.

Field

Type

Label

Description

field

TaskOptionEnumField

TaskOptionGenericField

Represents a generic field in a task option.

Field

Type

Label

Description

field

string

The generic field.

SessionRawEnumField

Represents every available field in a session raw.

Name

Number

Description

SESSION_RAW_ENUM_FIELD_UNSPECIFIED

0

SESSION_RAW_ENUM_FIELD_SESSION_ID

1

SESSION_RAW_ENUM_FIELD_STATUS

2

SESSION_RAW_ENUM_FIELD_PARTITION_IDS

3

SESSION_RAW_ENUM_FIELD_OPTIONS

4

SESSION_RAW_ENUM_FIELD_CREATED_AT

5

SESSION_RAW_ENUM_FIELD_CANCELLED_AT

6

SESSION_RAW_ENUM_FIELD_CLOSED_AT

8

SESSION_RAW_ENUM_FIELD_PURGED_AT

9

SESSION_RAW_ENUM_FIELD_DELETED_AT

10

SESSION_RAW_ENUM_FIELD_DURATION

7

SESSION_RAW_ENUM_FIELD_WORKER_SUBMISSION

11

SESSION_RAW_ENUM_FIELD_CLIENT_SUBMISSION

12

TaskOptionEnumField

Represents a field in a task option.

Name

Number

Description

TASK_OPTION_ENUM_FIELD_UNSPECIFIED

0

TASK_OPTION_ENUM_FIELD_MAX_DURATION

1

TASK_OPTION_ENUM_FIELD_MAX_RETRIES

2

TASK_OPTION_ENUM_FIELD_PRIORITY

3

TASK_OPTION_ENUM_FIELD_PARTITION_ID

4

TASK_OPTION_ENUM_FIELD_APPLICATION_NAME

5

TASK_OPTION_ENUM_FIELD_APPLICATION_VERSION

6

TASK_OPTION_ENUM_FIELD_APPLICATION_NAMESPACE

7

TASK_OPTION_ENUM_FIELD_APPLICATION_SERVICE

8

TASK_OPTION_ENUM_FIELD_ENGINE_TYPE

9

Top

sessions_filters.proto

FilterField

Field

Type

Label

Description

field

SessionField

filter_string

armonik.api.grpc.v1.FilterString

filter_number

armonik.api.grpc.v1.FilterNumber

filter_boolean

armonik.api.grpc.v1.FilterBoolean

filter_status

FilterStatus

filter_date

armonik.api.grpc.v1.FilterDate

filter_array

armonik.api.grpc.v1.FilterArray

filter_duration

armonik.api.grpc.v1.FilterDuration

FilterStatus

Field

Type

Label

Description

value

armonik.api.grpc.v1.session_status.SessionStatus

operator

armonik.api.grpc.v1.FilterStatusOperator

Filters

Field

Type

Label

Description

or

FiltersAnd

repeated

FiltersAnd

Field

Type

Label

Description

and

FilterField

repeated

Top

sessions_service.proto

Tasks related methods within a service.

Sessions

Service for handling sessions.

Method Name

Request Type

Response Type

Description

ListSessions

ListSessionsRequest

ListSessionsResponse

Get a sessions list using pagination, filters and sorting.

GetSession

GetSessionRequest

GetSessionResponse

Get a session by its id.

CancelSession

CancelSessionRequest

CancelSessionResponse

Cancel a session by its id.

CreateSession

CreateSessionRequest

CreateSessionReply

Create a session

PauseSession

PauseSessionRequest

PauseSessionResponse

Pause a session by its id.

ResumeSession

ResumeSessionRequest

ResumeSessionResponse

Resume a paused session by its id.

CloseSession

CloseSessionRequest

CloseSessionResponse

Close a session by its id..

PurgeSession

PurgeSessionRequest

PurgeSessionResponse

Purge a session by its id. Removes Results data.

DeleteSession

DeleteSessionRequest

DeleteSessionResponse

Delete a session by its id. Removes metadata from Results, Sessions and Tasks associated to the session.

StopSubmission

StopSubmissionRequest

StopSubmissionResponse

Stops clients and/or workers from submitting new tasks in the given session.

Top

sort_direction.proto

SortDirection

Represents every available sort directions.

Name

Number

Description

SORT_DIRECTION_UNSPECIFIED

0

Unspecified. Do not use.

SORT_DIRECTION_ASC

1

Ascending.

SORT_DIRECTION_DESC

2

Descending.

Top

submitter_common.proto

AvailabilityReply

Field

Type

Label

Description

ok

armonik.api.grpc.v1.Empty

error

armonik.api.grpc.v1.TaskError

not_completed_task

string

CreateLargeTaskRequest

Field

Type

Label

Description

init_request

CreateLargeTaskRequest.InitRequest

init_task

armonik.api.grpc.v1.InitTaskRequest

task_payload

armonik.api.grpc.v1.DataChunk

CreateLargeTaskRequest.InitRequest

Field

Type

Label

Description

session_id

string

task_options

armonik.api.grpc.v1.TaskOptions

CreateSessionReply

Reply after session creation. We have this reply in case of success. When the session creation is not successful, there is an rpc exception.

Field

Type

Label

Description

session_id

string

Session id of the created session if successful

CreateSessionRequest

Field

Type

Label

Description

default_task_option

armonik.api.grpc.v1.TaskOptions

partition_ids

string

repeated

List of partitions allowed during the session

CreateSmallTaskRequest

Field

Type

Label

Description

session_id

string

task_options

armonik.api.grpc.v1.TaskOptions

task_requests

armonik.api.grpc.v1.TaskRequest

repeated

CreateTaskReply

Field

Type

Label

Description

creation_status_list

CreateTaskReply.CreationStatusList

error

string

CreateTaskReply.CreationStatus

Field

Type

Label

Description

task_info

CreateTaskReply.TaskInfo

error

string

CreateTaskReply.CreationStatusList

Field

Type

Label

Description

creation_statuses

CreateTaskReply.CreationStatus

repeated

CreateTaskReply.TaskInfo

Field

Type

Label

Description

task_id

string

Unique ID of the created task.

expected_output_keys

string

repeated

Unique ID of the result that will be used as expected output. Results should already exist.

data_dependencies

string

repeated

Unique ID of the result that will be used as data dependency. Results should already exist.

payload_id

string

Unique ID of the result that will be used as payload. Result associated to the payload is created implicitly.

GetResultStatusReply

Field

Type

Label

Description

id_statuses

GetResultStatusReply.IdStatus

repeated

GetResultStatusReply.IdStatus

Field

Type

Label

Description

result_id

string

status

armonik.api.grpc.v1.result_status.ResultStatus

GetResultStatusRequest

Field

Type

Label

Description

result_ids

string

repeated

session_id

string

GetTaskStatusReply

Field

Type

Label

Description

id_statuses

GetTaskStatusReply.IdStatus

repeated

GetTaskStatusReply.IdStatus

Field

Type

Label

Description

task_id

string

status

armonik.api.grpc.v1.task_status.TaskStatus

GetTaskStatusRequest

Field

Type

Label

Description

task_ids

string

repeated

ResultReply

Field

Type

Label

Description

result

armonik.api.grpc.v1.DataChunk

error

armonik.api.grpc.v1.TaskError

not_completed_task

string

SessionFilter

Field

Type

Label

Description

sessions

string

repeated

included

SessionFilter.StatusesRequest

excluded

SessionFilter.StatusesRequest

SessionFilter.StatusesRequest

Field

Type

Label

Description

statuses

armonik.api.grpc.v1.session_status.SessionStatus

repeated

SessionIdList

Field

Type

Label

Description

session_ids

string

repeated

SessionList

Field

Type

Label

Description

sessions

armonik.api.grpc.v1.Session

repeated

TaskFilter

Field

Type

Label

Description

session

TaskFilter.IdsRequest

task

TaskFilter.IdsRequest

included

TaskFilter.StatusesRequest

excluded

TaskFilter.StatusesRequest

TaskFilter.IdsRequest

Field

Type

Label

Description

ids

string

repeated

TaskFilter.StatusesRequest

Field

Type

Label

Description

statuses

armonik.api.grpc.v1.task_status.TaskStatus

repeated

WaitRequest

Field

Type

Label

Description

filter

TaskFilter

stop_on_first_task_error

bool

stop_on_first_task_cancellation

bool

WatchResultRequest

Request to watch result states It contains the list of result ids you want to watch and some options to filter out some events. Chunking is achieved by sending multiple messages with different result ids. It is the responsability of the client to chunk the messages properly and avoid messages too large.

Field

Type

Label

Description

fetch_statuses

armonik.api.grpc.v1.result_status.ResultStatus

repeated

list of statuses to check results against for the initial fetch

watch_statuses

armonik.api.grpc.v1.result_status.ResultStatus

repeated

list of statuses to check results against for the watch

result_ids

string

repeated

result ids to fetch/watch

WatchResultStream

List of Result statuses Result Ids are grouped by status. One message contains result Ids that have the same status. Chunking is achieved by receiving several messages with the same status and the list of ids in multiple parts. As chunking is implicit, there is no way to distinguish between chunked messages and actually separate messages.

Field

Type

Label

Description

status

armonik.api.grpc.v1.result_status.ResultStatus

Status of the results

result_ids

string

repeated

List of result ids that triggered the event

Top

submitter_service.proto

Submitter

Method Name

Request Type

Response Type

Description

GetServiceConfiguration

.armonik.api.grpc.v1.Empty

.armonik.api.grpc.v1.Configuration

CreateSession

CreateSessionRequest

CreateSessionReply

CancelSession

.armonik.api.grpc.v1.Session

.armonik.api.grpc.v1.Empty

CreateSmallTasks

CreateSmallTaskRequest

CreateTaskReply

CreateLargeTasks

CreateLargeTaskRequest stream

CreateTaskReply

ListTasks

TaskFilter

.armonik.api.grpc.v1.TaskIdList

ListSessions

SessionFilter

SessionIdList

CountTasks

TaskFilter

.armonik.api.grpc.v1.Count

TryGetResultStream

.armonik.api.grpc.v1.ResultRequest

ResultReply stream

TryGetTaskOutput

.armonik.api.grpc.v1.TaskOutputRequest

.armonik.api.grpc.v1.Output

WaitForAvailability

.armonik.api.grpc.v1.ResultRequest

AvailabilityReply

WaitForCompletion

WaitRequest

.armonik.api.grpc.v1.Count

CancelTasks

TaskFilter

.armonik.api.grpc.v1.Empty

GetTaskStatus

GetTaskStatusRequest

GetTaskStatusReply

GetResultStatus

GetResultStatusRequest

GetResultStatusReply

WatchResults

WatchResultRequest stream

WatchResultStream stream

This endpoint allows a user to watch a list of results and be notified when there is any change. The user sends the list of ids they want to watch. The submitter will then send the statuses for all requested ids immediately and keep the stream open. Ids not present in DB will be returned at that time with the special state NOTFOUND. The submitter will send updates to the client via the opened stream. Any reply can be implicitely chunked if there are too many event to report at the same time (or for the first reply). It is possible to filter out specific statuses from events.

Top

task_status.proto

Status of a task.

TaskStatus

Task status.

Name

Number

Description

TASK_STATUS_UNSPECIFIED

0

Task is in an unknown state.

TASK_STATUS_CREATING

1

Task is being created in database.

TASK_STATUS_SUBMITTED

2

Task is submitted to the queue.

TASK_STATUS_DISPATCHED

3

Task is dispatched to a worker.

TASK_STATUS_COMPLETED

4

Task is completed.

TASK_STATUS_ERROR

5

Task is in error state.

TASK_STATUS_TIMEOUT

6

Task is in timeout state.

TASK_STATUS_CANCELLING

7

Task is being cancelled.

TASK_STATUS_CANCELLED

8

Task is cancelled.

TASK_STATUS_PROCESSING

9

Task is being processed.

TASK_STATUS_PROCESSED

10

Task is processed.

TASK_STATUS_RETRIED

11

Task is retried.

TASK_STATUS_PENDING

12

Task is waiting for its dependencies before becoming executable.

TASK_STATUS_PAUSED

13

Task is paused and will not be executed until session is resumed.

Top

tasks_common.proto

Messages describing tasks and associated requests and responses.

CancelTasksRequest

Request to cancel one or many tasks

Field

Type

Label

Description

task_ids

string

repeated

Ids of the tasks to cancel

CancelTasksResponse

Response from canceling one or many tasks

Field

Type

Label

Description

tasks

TaskSummary

repeated

Tasks that have been asked to cancel

CountTasksByStatusRequest

Request to get count from tasks by status

Field

Type

Label

Description

filters

Filters

The filters.

CountTasksByStatusResponse

Response to get count from tasks by status

Field

Type

Label

Description

status

armonik.api.grpc.v1.StatusCount

repeated

Number of tasks by status. Expected to have only 1 object by tasks status.

GetResultIdsRequest

Request for getting result ids of tasks ids.

Field

Type

Label

Description

task_id

string

repeated

The task IDs.

GetResultIdsResponse

Response for getting result ids of tasks ids.

Field

Type

Label

Description

task_results

GetResultIdsResponse.MapTaskResult

repeated

The task results.

GetResultIdsResponse.MapTaskResult

Represents a task result.

Field

Type

Label

Description

task_id

string

The task ID.

result_ids

string

repeated

The result IDs.

GetTaskRequest

Request for getting a single task.

Field

Type

Label

Description

task_id

string

The task ID.

GetTaskResponse

Response for getting a single task.

Return a raw task.

Field

Type

Label

Description

task

TaskDetailed

The task.

ListTasksDetailedResponse

Response to list tasks.

Use pagination, filtering and sorting from the request. Return a list of formatted tasks.

Field

Type

Label

Description

tasks

TaskDetailed

repeated

The list of tasks.

page

int32

The page number. Start at 0.

page_size

int32

The page size.

total

int32

The total number of tasks.

ListTasksRequest

Request to list tasks.

Use pagination, filtering and sorting.

Field

Type

Label

Description

page

int32

The page number. Start at 0.

page_size

int32

The page size.

filters

Filters

The filters.

sort

ListTasksRequest.Sort

The sort.

Must be set for every request. | | with_errors | bool | | Request error message in case of error in task |

ListTasksRequest.Sort

Represents the sort object.

Field

Type

Label

Description

field

TaskField

The field to sort on.

direction

armonik.api.grpc.v1.sort_direction.SortDirection

The sort direction.

ListTasksResponse

Response to list tasks.

Use pagination, filtering and sorting from the request. Return a list of formatted tasks.

Field

Type

Label

Description

tasks

TaskSummary

repeated

The list of tasks.

page

int32

The page number. Start at 0.

page_size

int32

The page size.

total

int32

The total number of tasks.

SubmitTasksRequest

Request to create tasks.

Field

Type

Label

Description

session_id

string

The session ID.

task_options

armonik.api.grpc.v1.TaskOptions

The options for the tasks. Each task will have the same. Options are merged with the one from the session.

task_creations

SubmitTasksRequest.TaskCreation

repeated

Task creation requests.

SubmitTasksRequest.TaskCreation

Field

Type

Label

Description

expected_output_keys

string

repeated

Unique ID of the results that will be produced by the task. Results should be created using ResultsService.

data_dependencies

string

repeated

Unique ID of the results that will be used as datadependencies. Results should be created using ResultsService.

payload_id

string

Unique ID of the result that will be used as payload. Result should created using ResultsService.

task_options

armonik.api.grpc.v1.TaskOptions

Optional task options.

SubmitTasksResponse

Response to create tasks.

expected_output_ids and data_dependencies must be created through ResultsService.

Remark : this may have to be enriched to a better management of errors but will the client application be able to manage a missing data dependency or expected output ?

Field

Type

Label

Description

task_infos

SubmitTasksResponse.TaskInfo

repeated

List of task infos if submission successful, else throw gRPC exception.

SubmitTasksResponse.TaskInfo

Field

Type

Label

Description

task_id

string

The task ID.

expected_output_ids

string

repeated

The expected output IDs. A task have expected output IDs.

data_dependencies

string

repeated

The data dependencies IDs (inputs). A task have data dependencies.

payload_id

string

Unique ID of the result that will be used as payload. Result should created using ResultsService.

TaskDetailed

A raw task object.

Used when a single task is returned.

Field

Type

Label

Description

id

string

The task ID.

session_id

string

The session ID. A task have only one related session but a session have many tasks.

owner_pod_id

string

The owner pod ID.

initial_task_id

string

The initial task ID. Set when a task is submitted independently of retries.

parent_task_ids

string

repeated

The parent task IDs. A tasks can be a child of another task.

data_dependencies

string

repeated

The data dependencies. A task have data dependencies.

expected_output_ids

string

repeated

The expected output IDs. A task have expected output IDs.

retry_of_ids

string

repeated

The retry of IDs. When a task fail, retry will use these set of IDs.

status

armonik.api.grpc.v1.task_status.TaskStatus

The task status.

status_message

string

The status message.

options

armonik.api.grpc.v1.TaskOptions

The task options.

created_at

google.protobuf.Timestamp

The task creation date.

submitted_at

google.protobuf.Timestamp

The task submission date.

received_at

google.protobuf.Timestamp

When the task is received by the agent.

acquired_at

google.protobuf.Timestamp

When the task is acquired by the agent.

fetched_at

google.protobuf.Timestamp

Task data retrieval end date.

started_at

google.protobuf.Timestamp

The task start date.

processed_at

google.protobuf.Timestamp

The end of task processing date.

ended_at

google.protobuf.Timestamp

The task end date. Also used when task failed.

pod_ttl

google.protobuf.Timestamp

The pod TTL (Time To Live).

creation_to_end_duration

google.protobuf.Duration

The task duration. Between the creation date and the end date.

processing_to_end_duration

google.protobuf.Duration

The task calculated duration. Between the start date and the end date.

received_to_end_duration

google.protobuf.Duration

The task calculated duration. Between the received date and the end date.

payload_id

string

The ID of the Result that is used as a payload for this task.

created_by

string

The ID of the Task that as submitted this task empty if none.

output

TaskDetailed.Output

The task output.

pod_hostname

string

The hostname of the container running the task.

TaskDetailed.Output

Represents the task output.

Field

Type

Label

Description

success

bool

To know if a task have failed or succeed.

error

string

The error message. Only set if task have failed.

TaskSummary

A summary task object.

It contains only a subset of the fields from the underlying task object. Used when a list of tasks are returned.

Field

Type

Label

Description

id

string

The task ID.

session_id

string

The session ID. A task have only one related session but a session have many tasks.

owner_pod_id

string

The owner pod ID.

initial_task_id

string

The initial task ID. Set when a task is submitted independently of retries.

count_parent_task_ids

int64

Count the parent task IDs. A tasks can be a child of another task.

count_data_dependencies

int64

Count the data dependencies. A task have data dependencies.

count_expected_output_ids

int64

Count the expected output IDs. A task have expected output IDs.

count_retry_of_ids

int64

Count the retry of IDs. When a task fail, retry will use these set of IDs.

status

armonik.api.grpc.v1.task_status.TaskStatus

The task status.

status_message

string

The status message.

options

armonik.api.grpc.v1.TaskOptions

The task options.

created_at

google.protobuf.Timestamp

The task creation date.

submitted_at

google.protobuf.Timestamp

The task submission date.

received_at

google.protobuf.Timestamp

When the task is received by the agent.

acquired_at

google.protobuf.Timestamp

When the task is acquired by the agent.

fetched_at

google.protobuf.Timestamp

Task data retrieval end date.

started_at

google.protobuf.Timestamp

The task start date.

processed_at

google.protobuf.Timestamp

The end of task processing date.

ended_at

google.protobuf.Timestamp

The task end date. Also used when task failed.

pod_ttl

google.protobuf.Timestamp

The pod TTL (Time To Live).

creation_to_end_duration

google.protobuf.Duration

The task duration. Between the creation date and the end date.

processing_to_end_duration

google.protobuf.Duration

The task calculated duration. Between the start date and the end date.

received_to_end_duration

google.protobuf.Duration

The task calculated duration. Between the received date and the end date.

payload_id

string

The ID of the Result that is used as a payload for this task.

created_by

string

The ID of the Task that as submitted this task empty if none.

error

string

The error message. Only set if task have failed.

pod_hostname

string

The hostname of the container running the task.

Top

tasks_fields.proto

TaskField

Field

Type

Label

Description

task_summary_field

TaskSummaryField

The task summary field.

task_option_field

TaskOptionField

The task option field.

task_option_generic_field

TaskOptionGenericField

The task option generic field.

TaskOptionField

This message is used to wrap the enum in order to facilitate the ‘oneOf’ generation.

Field

Type

Label

Description

field

TaskOptionEnumField

TaskOptionGenericField

Represents a generic field in a task option.

Field

Type

Label

Description

field

string

The generic field.

TaskSummaryField

This message is used to wrap the enum in order to facilitate the ‘oneOf’ generation.

Field

Type

Label

Description

field

TaskSummaryEnumField

TaskOptionEnumField

Represents a field in a task option.

Name

Number

Description

TASK_OPTION_ENUM_FIELD_UNSPECIFIED

0

TASK_OPTION_ENUM_FIELD_MAX_DURATION

1

TASK_OPTION_ENUM_FIELD_MAX_RETRIES

2

TASK_OPTION_ENUM_FIELD_PRIORITY

3

TASK_OPTION_ENUM_FIELD_PARTITION_ID

4

TASK_OPTION_ENUM_FIELD_APPLICATION_NAME

5

TASK_OPTION_ENUM_FIELD_APPLICATION_VERSION

6

TASK_OPTION_ENUM_FIELD_APPLICATION_NAMESPACE

7

TASK_OPTION_ENUM_FIELD_APPLICATION_SERVICE

8

TASK_OPTION_ENUM_FIELD_ENGINE_TYPE

9

TaskSummaryEnumField

Represents every available field in a task summary.

Name

Number

Description

TASK_SUMMARY_ENUM_FIELD_UNSPECIFIED

0

Unspecified

TASK_SUMMARY_ENUM_FIELD_TASK_ID

16

The task ID.

TASK_SUMMARY_ENUM_FIELD_SESSION_ID

1

The session ID.

TASK_SUMMARY_ENUM_FIELD_OWNER_POD_ID

9

The owner pod ID.

TASK_SUMMARY_ENUM_FIELD_INITIAL_TASK_ID

10

The initial task ID. Set when a task is submitted independently of retries.

TASK_SUMMARY_ENUM_FIELD_STATUS

2

The task status.

TASK_SUMMARY_ENUM_FIELD_CREATED_AT

3

The task creation date.

TASK_SUMMARY_ENUM_FIELD_SUBMITTED_AT

11

The task submission date.

TASK_SUMMARY_ENUM_FIELD_STARTED_AT

4

The task start date.

TASK_SUMMARY_ENUM_FIELD_ENDED_AT

5

The task end date.

TASK_SUMMARY_ENUM_FIELD_CREATION_TO_END_DURATION

6

The task duration. Between the creation date and the end date.

TASK_SUMMARY_ENUM_FIELD_PROCESSING_TO_END_DURATION

7

The task calculated duration. Between the start date and the end date.

TASK_SUMMARY_ENUM_FIELD_RECEIVED_TO_END_DURATION

18

The task calculated duration. Between the received date and the end date.

TASK_SUMMARY_ENUM_FIELD_POD_TTL

12

The pod TTL (Time To Live).

TASK_SUMMARY_ENUM_FIELD_POD_HOSTNAME

13

The hostname of the container running the task.

TASK_SUMMARY_ENUM_FIELD_RECEIVED_AT

14

When the task is received by the agent.

TASK_SUMMARY_ENUM_FIELD_ACQUIRED_AT

15

When the task is acquired by the agent.

TASK_SUMMARY_ENUM_FIELD_PROCESSED_AT

17

When the task is processed by the agent.

TASK_SUMMARY_ENUM_FIELD_ERROR

8

The error message. Only set if task have failed.

TASK_SUMMARY_ENUM_FIELD_FETCHED_AT

19

When task data are fetched by the agent.

TASK_SUMMARY_ENUM_FIELD_PAYLOAD_ID

20

The ID of the Result that is used as a payload for this task.

TASK_SUMMARY_ENUM_FIELD_CREATED_BY

21

The ID of the Result that is used as a payload for this task.

Top

tasks_filters.proto

FilterField

Field

Type

Label

Description

field

TaskField

filter_string

armonik.api.grpc.v1.FilterString

filter_number

armonik.api.grpc.v1.FilterNumber

filter_boolean

armonik.api.grpc.v1.FilterBoolean

filter_status

FilterStatus

filter_date

armonik.api.grpc.v1.FilterDate

filter_array

armonik.api.grpc.v1.FilterArray

filter_duration

armonik.api.grpc.v1.FilterDuration

FilterStatus

Field

Type

Label

Description

value

armonik.api.grpc.v1.task_status.TaskStatus

operator

armonik.api.grpc.v1.FilterStatusOperator

Filters

Field

Type

Label

Description

or

FiltersAnd

repeated

FiltersAnd

Field

Type

Label

Description

and

FilterField

repeated

Top

tasks_service.proto

Tasks related methods within a service.

Tasks

Service for handling tasks.

Method Name

Request Type

Response Type

Description

ListTasks

ListTasksRequest

ListTasksResponse

Get a tasks list using pagination, filters and sorting.

ListTasksDetailed

ListTasksRequest

ListTasksDetailedResponse

Get a tasks list using pagination, filters and sorting with complete metada.

GetTask

GetTaskRequest

GetTaskResponse

Get a task by its id.

CancelTasks

CancelTasksRequest

CancelTasksResponse

Cancel tasks using ids.

GetResultIds

GetResultIdsRequest

GetResultIdsResponse

Get ids of the result that tasks should produce.

CountTasksByStatus

CountTasksByStatusRequest

CountTasksByStatusResponse

Get count from tasks status.

SubmitTasks

SubmitTasksRequest

SubmitTasksResponse

Create tasks metadata and submit task for processing.

Top

versions_common.proto

Message describing versions.

ListVersionsRequest

Request to list versions.

ListVersionsResponse

Response to list versions.

Field

Type

Label

Description

core

string

api

string

We can add more versions here.

Top

versions_service.proto

Versions related methods within a service. This service will be used to get the version of infrastructure components from outside the cluster.

Versions

Service for handling versions.

Method Name

Request Type

Response Type

Description

ListVersions

ListVersionsRequest

ListVersionsResponse

Get all versions.

Top

worker_common.proto

HealthCheckReply

Field

Type

Label

Description

status

HealthCheckReply.ServingStatus

ProcessReply

Field

Type

Label

Description

output

armonik.api.grpc.v1.Output

ProcessRequest

Field

Type

Label

Description

communication_token

string

session_id

string

task_id

string

task_options

armonik.api.grpc.v1.TaskOptions

expected_output_keys

string

repeated

payload_id

string

data_dependencies

string

repeated

data_folder

string

configuration

armonik.api.grpc.v1.Configuration

HealthCheckReply.ServingStatus

Name

Number

Description

UNKNOWN

0

SERVING

1

NOT_SERVING

2

Top

worker_service.proto

Worker

Method Name

Request Type

Response Type

Description

Process

ProcessRequest

ProcessReply

HealthCheck

.armonik.api.grpc.v1.Empty

HealthCheckReply

Scalar Value Types

.proto Type

Notes

C++

Java

Python

Go

C#

PHP

Ruby

double

double

double

float

float64

double

float

Float

float

float

float

float

float32

float

float

Float

int32

Uses variable-length encoding. Inefficient for encoding negative numbers – if your field is likely to have negative values, use sint32 instead.

int32

int

int

int32

int

integer

Bignum or Fixnum (as required)

int64

Uses variable-length encoding. Inefficient for encoding negative numbers – if your field is likely to have negative values, use sint64 instead.

int64

long

int/long

int64

long

integer/string

Bignum

uint32

Uses variable-length encoding.

uint32

int

int/long

uint32

uint

integer

Bignum or Fixnum (as required)

uint64

Uses variable-length encoding.

uint64

long

int/long

uint64

ulong

integer/string

Bignum or Fixnum (as required)

sint32

Uses variable-length encoding. Signed int value. These more efficiently encode negative numbers than regular int32s.

int32

int

int

int32

int

integer

Bignum or Fixnum (as required)

sint64

Uses variable-length encoding. Signed int value. These more efficiently encode negative numbers than regular int64s.

int64

long

int/long

int64

long

integer/string

Bignum

fixed32

Always four bytes. More efficient than uint32 if values are often greater than 2^28.

uint32

int

int

uint32

uint

integer

Bignum or Fixnum (as required)

fixed64

Always eight bytes. More efficient than uint64 if values are often greater than 2^56.

uint64

long

int/long

uint64

ulong

integer/string

Bignum

sfixed32

Always four bytes.

int32

int

int

int32

int

integer

Bignum or Fixnum (as required)

sfixed64

Always eight bytes.

int64

long

int/long

int64

long

integer/string

Bignum

bool

bool

boolean

boolean

bool

bool

boolean

TrueClass/FalseClass

string

A string must always contain UTF-8 encoded or 7-bit ASCII text.

string

String

str/unicode

string

string

string

String (UTF-8)

bytes

May contain any arbitrary sequence of bytes.

string

ByteString

str

[]byte

ByteString

string

String (ASCII-8BIT)