Slurm OpenAPI Plugin Release Notes

These release notes are maintained to provide OpenAPI client programmers a guide to where changes have taken place in the OpenAPI specifications from the OpenAPI plugins which are mainly used by slurmrestd but are also used to generate JSON or YAML output for multiple CLI commands.

All paths given are formatted for use with jq. Make sure to always place the paths in a single quote string to avoid shell replacements.

The OpenAPI specification should always be generated by slurmrestd once fully configured for normal operation. Query 'GET /openapi/v3' from slurmrestd to get the generated OpenAPI specification. The generated specification can change depending on which plugins are loaded and how they are configured. Any client must be careful to always use the current generated specification for any target slurmrestd daemon. Development of clients should always be designed to use the highest version of the plugins available to avoid needing to port clients sooner than would be otherwise required.

Slurm 23.11.5

data_parser/v0.0.40

Add field

path .components.schemas."v0.0.40_job_desc_msg".properties.cores_per_socket

Slurm 23.11.2

data_parser/v0.0.40

Added field

before
  • .components.schemas."v0.0.40_job".properties.hold
  • .components.schemas."v0.0.40_job".properties.priority.description
  • .components.schemas."v0.0.40_job_desc_msg".properties.hold
  • .components.schemas."v0.0.40_job_desc_msg".properties.priority.description
  • .components.schemas."v0.0.40_job_info".properties.hold
  • .components.schemas."v0.0.40_job_info".properties.priority.description

Add GRES_ONE_TASK_PER_SHARING and GRES_MULT_TASKS_PER_SHARING flags to /job_info, /job_desc_msg output

New property
  • .components.schemas."v0.0.40_job_info".properties.flags
  • .components.schemas."v0.0.40_job_desc_msg".properties.flags

Slurm 23.11.1

data_parser/v0.0.40

Renamed field

before
  • .components.schemas.v0.0.39_job_mem_per_node
after
  • .components.schemas.v0.0.39_mem_per_node

Renamed field

before
  • .components.schemas.v0.0.39_job_mem_per_cpu
after
  • .components.schemas.v0.0.39_mem_per_cpu

openapi/slurmctld

Add field

add
  • .components.schemas."v0.0.40_openapi_meta".properties.slurm.properties.cluster
add
  • .components.schemas."v0.0.40_partition_info".properties.defaults.properties.partition_memory_per_cpu
add
  • .components.schemas."v0.0.40_partition_info".properties.defaults.properties.partition_memory_per_node
add
  • .components.schemas."v0.0.40_partition_info".properties.maximums.properties.partition_memory_per_cpu
add
  • .components.schemas."v0.0.40_partition_info".properties.maximums.properties.oversubscribe
add
  • .components.schemas."v0.0.40_partition_info".properties.maximums.properties.partition_memory_per_node

openapi/slurmdbd

Add field

add
  • .components.schemas."v0.0.40_openapi_meta".properties.slurm.properties.cluster

Slurm 23.11.0

openapi/slurmctld

New plugin

The openapi/slurmctld plugin forked from the openapi/v0.0.39 plugin.

Swap job exit codes to verbose output

Field modified .components.schemas."v0.0.40_job_info".properties.exit_code
Field modified .components.schemas."v0.0.40_job_info".properties.derived_exit_code

Remove the "required/memory" field. It would dump very large integers if the job required per cpu memory but dump correct amounts for per node memory.

Field removed .component.schemas."v0.0.40_job".properties.required.properties.memory

Add timestamps for last change to data or generation times.

Fields added .components.schemas."v0.0.40_openapi_job_info_resp".properties.last_backfill .components.schemas."v0.0.40_openapi_job_info_resp".properties.last_update .components.schemas."v0.0.40_openapi_nodes_resp".properties.last_update .components.schemas."v0.0.40_openapi_partition_resp".properties.last_update .components.schemas."v0.0.40_openapi_reservation_resp".properties.last_update .components.schemas."v0.0.40_openapi_licenses_resp".properties.last_update

openapi/v0.0.38 (src/plugins/openapi/v0.0.38/openapi.json)

Deprecation notice

The v0.0.38 plugin has now been marked as deprecated.

openapi/v0.0.37 (src/plugins/openapi/v0.0.37/openapi.json)

Removal notice

The v0.0.37 plugin has now been removed.

openapi/slurmdbd

New plugin

The openapi/slurmdbd plugin forked from the openapi/dbv0.0.39 plugin.

Swap job exit codes to process exit codes

Field modified .components.schemas."v0.0.40_job".properties.exit_code
Field modified .components.schemas."v0.0.40_job".properties.derived_exit_code
Field modified .components.schemas."v0.0.40_step".properties.exit_code

Switch StepID field to be string to match CLI format

Field modified .components.schemas."v0.0.40_step".properties.step

Add fields to assocations

Added .components.schemas."v0.0.40_assoc".properties.accounting
Added .components.schemas."v0.0.40_assoc".properties.id
Added .components.schemas."v0.0.40_assoc".properties.comment

Removed field from assocations

Removed .components.schemas."v0.0.40_assoc".properties.usage

Add new /accounts_association endpoint

add
  • .components.schemas."v0.0.40_openapi_accounts_add_cond_resp_str"
  • .components.schemas."v0.0.40_openapi_accounts_add_cond_resp"
  • .paths."/slurmdb/v0.0.40/accounts_association"

Add new /users_association endpoint

add
  • .components.schemas."v0.0.40_openapi_users_add_cond_resp_str"
  • .components.schemas."v0.0.40_openapi_users_add_cond_resp"
  • .paths."/slurmdb/v0.0.40/users_association"

openapi/dbv0.0.38 (src/plugins/openapi/dbv0.0.38/openapi.json)

Deprecation notice

The dbv0.0.38 plugin has now been marked as deprecated.

openapi/dbv0.0.37 (src/plugins/openapi/dbv0.0.37/openapi.json)

Removal notice

The dbv0.0.37 plugin has now been removed.

Slurm 23.02.6

openapi/v0.0.39

Correct path for responses types

Updated paths .paths."/slurm/v0.0.39/licenses".get.responses.default .paths."/slurm/v0.0.39/job/{job_id}".get.responses.default

openapi/dbv0.0.39

Switch integer to have NO_VAL tagging to allow for complex values.

Field modified .components.schemas."v0.0.39_assoc".properties.max.properties.jobs.properties.per.properties.count .components.schemas."v0.0.39_assoc".properties.max.properties.jobs.properties.active .components.schemas."v0.0.39_assoc".properties.max.properties.jobs.properties.accruing .components.schemas."v0.0.39_assoc".properties.max.properties.jobs.properties.total .components.schemas."v0.0.39_qos".properties.limits.properties.grace_time .components.schemas."v0.0.39_qos".properties.limits.properties.max.properties.active_jobs.properties.accruing .components.schemas."v0.0.39_qos".properties.limits.properties.max.properties.active_jobs.properties.count .components.schemas."v0.0.39_qos".properties.limits.properties.max.properties.wall_clock.properties.per.properties.qos .components.schemas."v0.0.39_qos".properties.limits.properties.max.properties.wall_clock.properties.per.properties.job .components.schemas."v0.0.39_qos".properties.limits.properties.max.properties.jobs.properties.active_jobs.properties.account .components.schemas."v0.0.39_qos".properties.limits.properties.max.properties.jobs.properties.active_jobs.properties.user .components.schemas."v0.0.39_qos".properties.limits.properties.max.properties.jobs.properties.per.properties.account .components.schemas."v0.0.39_qos".properties.limits.properties.max.properties.accruing.properties.per.properties.account .components.schemas."v0.0.39_qos".properties.limits.properties.max.properties.accruing.properties.per.properties.user .components.schemas."v0.0.39_qos".properties.limits.properties.min.properties.priority_threshold

Slurm 23.02.5

openapi/v0.0.39

Add missing fields

path .components.schemas."v0.0.39_job_desc_msg".properties.hold .components.schemas."v0.0.39_job_desc_msg".properties.priority .components.schemas."v0.0.39_job_desc_msg".properties.required .components.schemas."v0.0.39_cron_entry".properties.line.properties.start .components.schemas."v0.0.39_partition_info".properties.nodes.properties.allowed_allocation .components.schemas."v0.0.39_partition_info".properties.nodes.properties.configured .components.schemas."v0.0.39_partition_info".properties.accounts.properties.allowed .components.schemas."v0.0.39_partition_info".properties.qos.properties.allowed .components.schemas."v0.0.39_partition_info".properties.qos.properties.deny .components.schemas."v0.0.39_partition_info".properties.tres.properties.billing_weights .components.schemas."v0.0.39_partition_info".properties.cpus.properties.task_binding .components.schemas."v0.0.39_partition_info".properties.default.properties.memory_per_cpu .components.schemas."v0.0.39_partition_info".properties.default.properties.time .components.schemas."v0.0.39_partition_info".properties.maximums.properties.cpus_per_node .components.schemas."v0.0.39_partition_info".properties.maximums.properties.cpus_per_socket .components.schemas."v0.0.39_partition_info".properties.maximums.properties.memory_per_cpu .components.schemas."v0.0.39_partition_info".properties.maximums.properties.nodes .components.schemas."v0.0.39_partition_info".properties.maximums.properties.shares .components.schemas."v0.0.39_partition_info".properties.maximums.properties.time .components.schemas."v0.0.39_partition_info".properties.priority.properties.job_factor .components.schemas."v0.0.39_partition_info".properties.timeouts.properties.resume .components.schemas."v0.0.39_job_info".properties.hold

Add required/memory_per_cpu and required/memory_per_node to v0.0.39_job to differientate between jobs that require memory per node or per CPU. Jobs that required per cpu memory will dump very large integers due to internal bit packing required/memory but dump correct amounts for per node memory.

Field added .components.schemas."v0.0.39_job".properties.required.properties.mem_per_cpu
Field added .components.schemas."v0.0.39_job".properties.required.properties.mem_per_node

openapi/dbv0.0.39

Add missing fields

path .components.schemas."v0.0.39_stats_rpc".properties.time.properties.average .components.schemas."v0.0.39_stats_user".properties.time.properties.average .components.schemas."v0.0.39_user".properties.default.properties.account .components.schemas."v0.0.39_assoc".properties.max.properties.tres .components.schemas."v0.0.39_assoc".properties.max.properties.jobs.properties.active .components.schemas."v0.0.39_assoc".properties.max.properties.jobs.properties.accruing .components.schemas."v0.0.39_assoc".properties.max.properties.jobs.properties.total .components.schemas."v0.0.39_assoc".properties.max.properties.jobs.properties.per.properties.count .components.schemas."v0.0.39_assoc".properties.max.properties.jobs.properties.per.properties.accruing .components.schemas."v0.0.39_assoc".properties.max.properties.jobs.properties.per.properties.submitted .components.schemas."v0.0.39_qos".properties.limits.properties.grace_time .components.schemas."v0.0.39_qos".properties.limits.properties.max .components.schemas."v0.0.39_qos".properties.limits.properties.jobs .components.schemas."v0.0.39_qos".properties.limits.properties.factor .components.schemas."v0.0.39_qos".properties.limits.properties.min.properties.priority_threshold .components.schemas."v0.0.39_qos".properties.preempt.properties.list .components.schemas."v0.0.39_qos".properties.preempt.properties.mode .components.schemas."v0.0.39_job".properties.hold .components.schemas."v0.0.39_job".properties.comment.properties.administrator .components.schemas."v0.0.39_job".properties.comment.properties.job .components.schemas."v0.0.39_job".properties.array.properties.job_id .components.schemas."v0.0.39_job".properties.array.properties.limits .components.schemas."v0.0.39_job".properties.array.properties.task_id .components.schemas."v0.0.39_job".properties.time.properties.elapsed .components.schemas."v0.0.39_job".properties.time.properties.eligible .components.schemas."v0.0.39_job".properties.time.properties.end .components.schemas."v0.0.39_job".properties.time.properties.start .components.schemas."v0.0.39_job".properties.time.properties.submission .components.schemas."v0.0.39_job".properties.time.properties.suspended .components.schemas."v0.0.39_job".properties.time.properties.system .components.schemas."v0.0.39_job".properties.time.properties.limit .components.schemas."v0.0.39_job".properties.time.properties.total .components.schemas."v0.0.39_job".properties.time.properties.user.properties.seconds .components.schemas."v0.0.39_job".properties.het.properties.job_id .components.schemas."v0.0.39_job".properties.required.properties.CPUs .components.schemas."v0.0.39_job".properties.reservation.properties.id .components.schemas."v0.0.39_job".properties.state.properties.current .components.schemas."v0.0.39_job".properties.tres.properties.allocated .components.schemas."v0.0.39_step".properties.time.properties.elapsed .components.schemas."v0.0.39_step".properties.time.properties.end .components.schemas."v0.0.39_step".properties.time.properties.start .components.schemas."v0.0.39_step".properties.time.properties.suspended .components.schemas."v0.0.39_step".properties.time.properties.system .components.schemas."v0.0.39_step".properties.time.properties.total .components.schemas."v0.0.39_step".properties.time.properties.user.properties.seconds .components.schemas."v0.0.39_step".properties.nodes.properties.count .components.schemas."v0.0.39_step".properties.nodes.properties.range .components.schemas."v0.0.39_step".properties.CPU.properties.requested_frequency .components.schemas."v0.0.39_step".properties.statistics.properties.CPU .components.schemas."v0.0.39_step".properties.step.properties.id .components.schemas."v0.0.39_step".properties.tres.properties.requested .components.schemas."v0.0.39_step".properties.tres.properties.consumed .components.schemas."v0.0.39_cluster_rec".properties.controller.properties.host

Switch integer to have NO_VAL tagging to allow for complex values.

Field modified .components.schemas."v0.0.39_acct_gather_energy".properties.current_watts
Field modified .components.schemas."v0.0.39_qos".properties.priority

Slurm 23.02.4

openapi/v0.0.39

Tag job description environment field as required

Field add .components.schemas."v0.0.39_job_desc_msg".required

Add status schema to default

Field added .paths."/licenses/".get.responses.default
Field added .paths."/job/{job_id}".get.responses.default

Tag derived_exit_code and exit_code as UINT32_NO_VAL to avoid 4294967295 on still running jobs.

Field changed .components.schemas."v0.0.39_job_info".properties.derived_exit_code
Field changed .components.schemas."v0.0.39_job_info".properties.exit_code

Slurm 23.02.3

openapi/v0.0.39

Correct invalid reference in status schema

Field modified .components.schemas.status.properties.errors

Revert removal of Job description "oversubscribe" field

New field .components.schemas."v0.0.39_job_desc_msg".properties.oversubscribe
New field .components.schemas."v0.0.39_job_info".properties.oversubscribe

Slurm 23.02.2

openapi/v0.0.39

Revert format change for job updates

Modify field .paths."/job/{job_id}".post.requestBody.content

Revert removal of Job description "exclusive" field

New field .components.schemas."v0.0.39_job_desc_msg".properties.exclusive
New field .components.schemas."v0.0.39_job_info".properties.exclusive

openapi/dbv0.0.39

Revert removal of Job description "exclusive" field

New field .components.schemas."v0.0.39_job_desc_msg".properties.exclusive
New field .components.schemas."v0.0.39_job_info".properties.exclusive

Slurm 23.02.0

openapi/v0.0.39

New plugin

The v0.0.39 plugin forked from the v0.0.38 plugin.

New Schema

Plugin has been converted to new data_parser/v0.0.39 plugin for handling parsing and dumping of all data structures and automatic data structure schema generation. There have been significant changes to all schemas and care needs to be take to update data sent and expected from requests while porting to new plugin. Developers are advised to review the generated OpenAPI output directly while updating.

New methods for node queries

DELETE and POST methods are now supported for /slurm/v0.0.39/node/{node_id} paths.

openapi/v0.0.37

Deprecation notice

The v0.0.37 plugin has now been marked as deprecated.

openapi/v0.0.36

Removal notice

The v0.0.36 plugin has now been removed.

openapi/dbv0.0.39

New plugin

The dbv0.0.39 plugin forked from the dbv0.0.38 plugin.

New Schema

Plugin has been converted to new data_parser/v0.0.39 plugin for handling parsing and dumping of all data structures and automatic data structure schema generation. There have been significant changes to all schemas and care needs to be take to update data sent and expected from requests while porting to new plugin. Developers are advised to review the generated OpenAPI output directly while updating.

openapi/dbv0.0.37

Deprecation notice

The dbv0.0.37 plugin has now been marked as deprecated.

openapi/dbv0.0.36

Removal notice

The dbv0.0.36 plugin has now been removed.

Slurm 22.05.8

openapi/v0.0.38

Fix invalid type for nice

Field modified .components.schemas."v0.0.38_job_properties".properties.nice

openapi/dbv0.0.38

Populate POST /tres/ body

new path .paths."/tres/".post.requestBody
new path .components.schemas."dbv0.0.38_tres_update"
new field .components.schemas."dbv0.0.38_update_qos".type

Add missing type field

new field .components.schemas."dbv0.0.38_update_account".type
new field .components.schemas."dbv0.0.38_update_users".type

Add missing requestBody field

new path .paths."/associations/".post.requestBody
new path .paths."/wckeys/".post.requestBody

Add missing requestBody field

new field .paths."/config".post.requestBody
new field .components.schemas."dbv0.0.38_set_config"

Correct type of field accounts->accounting in wckeys

new schema .components.schemas."dbv0.0.38_accounting"
new field .components.schemas."dbv0.0.38_wckey".properties.accounting
removed field .components.schemas."dbv0.0.38_wckey".properties.accounts

Use "QOS" in dbv0.0.38_qos_info

previous path .components.schemas."dbv0.0.38_qos_info".properties.qos
new path .components.schemas."dbv0.0.38_qos_info".properties.QOS

Add oversubscribe option to job submission properties

Field added .components.schemas."v0.0.38_job_properties".properties.oversubscribe

Slurm 22.05.7

openapi/v0.0.38

Add missing fields

Field added .components.schemas."v0.0.38_partition".properties.maximum_memory_per_cpu
Field added .components.schemas."v0.0.38_partition".properties.default_memory_per_node

Slurm 22.05.6

openapi/v0.0.38

Fix misnamed reference to prior version

Field modified .components.schemas."dbv0.0.38_tres_info".properties.tres

Slurm 22.05.4

openapi/v0.0.38

Add missing field to job properties

Add field prefer to jobs .components.schemas."v0.0.38_job_properties".properties.prefer

Slurm 22.05.0

openapi/dbv0.0.38

add plugin

new dbv0.0.38 openapi plugin
  • clone of existing dbv0.0.37 openapi plugin
  • all paths renamed from dbv0.0.37 to dbv0.0.38

Add POST method for /associations

new path .paths."/associations/".post
new path .components.schemas."dbv0.0.38_response_associations"

Correct placement of step TRES

previous path .components.schemas."dbv0.0.38_job_step".properties.step.properties.tres
new path .components.schemas."dbv0.0.38_job_step".properties.tres

Add association fields

new fields
  • .components.schemas."dbv0.0.38_association".properties.is_default
  • .components.schemas."dbv0.0.38_association".properties.max.tres.group.minutes
  • .components.schemas."dbv0.0.38_association".properties.max.tres.group.active
  • .components.schemas."dbv0.0.38_association".properties.max.jobs.active
  • .components.schemas."dbv0.0.38_association".properties.max.jobs.accruing
  • .components.schemas."dbv0.0.38_association".properties.max.jobs.total
  • .components.schemas."dbv0.0.38_association".properties.max.tres.minutes.per.job

Add error response contents

new fields
  • .paths."/account/{account_name}"[].responses.default[]
  • .paths."/accounts/"[].responses.default[]
  • .paths."/association/"[].responses.default[]
  • .paths."/associations/"[].responses.default[]
  • .paths."/cluster/{cluster_name}"[].responses.default[]
  • .paths."/clusters/"[].responses.default[]
  • .paths."/config/"[].responses.default[]
  • .paths."/diag/"[].responses.default[]
  • .paths."/job/{job_id}"[].responses.default[]
  • .paths."/jobs/"[].responses.default[]
  • .paths."/qos/{qos_name}/"[].responses.default[]
  • .paths."/qos/"[].responses.default[]
  • .paths."/tres/"[].responses.default[]
  • .paths."/users/"[].responses.default[]
  • .paths."/user/{user_name}"[].responses.default[]
  • .paths."/wckeys/"[].responses.default[]
  • .paths."/wckey/{wckey}"[].responses.default[]
  • .components.schemas."dbv0.0.38_meta"

Move incorrectly named field

old path .components.schemas."dbv0.0.38_qos".properties.limits.max.jobs.per.account
new path .components.schemas."dbv0.0.38_qos".properties.limits.max.jobs.active_jobs.per.account

Move incorrectly named field

old path .components.schemas."dbv0.0.38_qos".properties.limits.properties.max.properties.jobs.properties.per.properties.user
new path .components.schemas."dbv0.0.38_qos".properties.limits.properties.max.properties.jobs.properties.active_jobs.properties.per.properties.user

Add QOS fields

new fields
  • .components.schemas."dbv0.0.38_qos".properties.limits.properties.factor
  • .components.schemas."dbv0.0.38_qos".properties.limits.properties.max.properties.accruing.properties.per.properties.account
  • .components.schemas."dbv0.0.38_qos".properties.limits.properties.max.properties.accruing.properties.per.properties.user

Add diag fields

new fields
  • .components.schemas."v0.0.38_diag".bf_table_size
  • .components.schemas."v0.0.38_diag".bf_table_size_mean

Split up token and user

change array values
  • .security

Add meta entry

field added
  • .components.schemas."dbv0.0.38_diag".properties.meta
  • .components.schemas."dbv0.0.38_account_info".properties.meta
  • .components.schemas."dbv0.0.38_response_account_delete".properties.meta
  • .components.schemas."dbv0.0.38_response_wckey_add".properties.meta
  • .components.schemas."dbv0.0.38_wckey_info".properties.meta
  • .components.schemas."dbv0.0.38_response_wckey_delete".properties.meta
  • .components.schemas."dbv0.0.38_response_cluster_add".properties.meta
  • .components.schemas."dbv0.0.38_response_cluster_delete".properties.meta
  • .components.schemas."dbv0.0.38_response_user_update".properties.meta
  • .components.schemas."dbv0.0.38_user_info".properties.meta
  • .components.schemas."dbv0.0.38_response_user_delete".properties.meta
  • .components.schemas."dbv0.0.38_response_association_delete".properties.meta
  • .components.schemas."dbv0.0.38_associations_info".properties.meta
  • .components.schemas."dbv0.0.38_qos_info".properties.meta
  • .components.schemas."dbv0.0.38_response_qos_delete".properties.meta
  • .components.schemas."dbv0.0.38_response_associations".properties.meta
  • .components.schemas."dbv0.0.38_response_tres".properties.meta
  • .components.schemas."dbv0.0.38_tres_info".properties.meta
  • .components.schemas."dbv0.0.38_job_info".properties.meta
  • .components.schemas."dbv0.0.38_config_info".properties.meta
  • .components.schemas."dbv0.0.38_account_response".properties.meta
  • .components.schemas."dbv0.0.38_config_response".properties.meta
  • .components.schemas."dbv0.0.38_errors"

Add missing response field

new fields
  • .components.schemas."dbv0.0.38_response_association_delete".properties.removed_associations
  • .components.schemas."dbv0.0.38_error".properties.error_number
  • .components.schemas."dbv0.0.38_error".properties.source
  • .components.schemas."dbv0.0.38_error".properties.description
  • .components.schemas."/clusters/".properties.post.properties.requestBody
  • .components.schemas."dbv0.0.38_clusters_properties"

Switch field from object to array

modified field
  • .components.schemas."dbv0.0.38_user".properties.associations

Add missing field

new field
  • .components.schemas."dbv0.0.38_qos".properties.limits.properties.max.properties.tres.properties.minutes.properties.per.properties.qos
  • .components.schemas."dbv0.0.38_qos".properties.name

Correct field type to reference

modified field
  • .components.schemas."dbv0.0.38_config_info".properties.tres
  • .components.schemas."dbv0.0.38".properties.het.properties.job_id
  • .components.schemas."dbv0.0.38".properties.het.properties.job_offset
  • .components.schemas."dbv0.0.38_job_step".properties.task

Add requestBody field and associated schema

new fields
  • .components.schemas."dbv0.0.38_update_users"
  • .paths."/users/".post.requestBody'
  • .components.schemas."dbv0.0.38_update_accounts"
  • .paths."/accounts/".post.requestBody'

Correct parameter styles to "form"

modified fields
  • .paths."/job/{job_id}"[].get.parameters[]|select(.name="job_id)"

Change operationId naming schema to include url path

modified fields
  • .paths[][].operationId

Fix issue where association's QOS list consisted of IDs instead of names

modified fields
  • .components.schemas."dbv0.0.38_association".properties.qos

Add POST method for /qos

new method .paths."/qos/".post
new path .components.schemas."dbv0.0.38_response_qos"
new path .components.schemas."dbv0.0.38_update_qos"

Move response fields in dbv0.0.37_diag under "statistics"

new parent field
  • .components.schemas."dbv0.0.38_diag".properties.statistics
subordinated fields
  • .components.schemas."dbv0.0.38_diag".properties.time_start
  • .components.schemas."dbv0.0.38_diag".properties.rollups
  • .components.schemas."dbv0.0.38_diag".properties.RPCs
  • .components.schemas."dbv0.0.38_diag".properties.users

Allow strings for JobIds instead of only numerical JobIds.

Change job_id parameter to string
  • .paths."/job/{job_id}".get.parameters[].schema

Add with_deleted input parameter to GET /user, /users

New parameter
  • .paths."/user/{user_name}".get.parameters[] | select(.name=="with_deleted")
  • .paths."/users/".get.parameters[] | select(.name=="with_deleted")

Add deleted flag to /user, /users output

New property
  • .components.schemas."dbv0.0.38_user".properties.flags

Add with_deleted input parameter to GET /qos

New parameter
  • .paths."/qos/".get.parameters[] | select(.name=="with_deleted")
  • .paths."/qos/{qos_name}".get.parameters[] | select(.name=="with_deleted")

Add with_deleted input parameter to GET /account, /accounts

New parameter
  • .paths."/account/{account_name}".get.parameters[] | select(.name=="with_deleted")
  • .paths."/accounts/".get.parameters[] | select(.name=="with_deleted")

Add container field to job description

new fields
  • .components.schemas."dbv0.0.38_job".properties.container

Enforce limit to only DELETE or GET a single association instead of using required parameters.

changed value
  • .paths."/association/".get.parameters[].required
  • .paths."/association/".delete.parameters[].required

Add filter parameters to GET /associations

new method
  • .paths."/associations/".get.parameters

openapi/dbv0.0.36

Deprecation notice

The dbv0.0.36 plugin has now been marked as deprecated.

openapi/v0.0.38

add plugin

new v0.0.38 openapi plugin
  • clone of existing v0.0.37 openapi plugin
  • all paths renamed from v0.0.37 to v0.0.38

Allow strings for JobIds instead of only numerical JobIds.

Change job_id parameter to string
  • .paths."/job/{job_id}".get.parameters[].schema
  • .paths."/job/{job_id}".post.parameters[].schema
  • .paths."/job/{job_id}".delete.parameters[].schema

Correct multiple type mistakes

modified entry .components.schemas."v0.0.38_job_response_properties".properties.array_job_id
modified entry .components.schemas."v0.0.38_job_response_properties".properties.array_task_id
modified entry .components.schemas."v0.0.38_job_response_properties".properties.array_max_tasks
modified entry .components.schemas."v0.0.38_job_response_properties".properties.association_id
modified entry .components.schemas."v0.0.38_job_response_properties".properties.billable_tres
modified entry .components.schemas."v0.0.38_job_response_properties".properties.deadline
modified entry .components.schemas."v0.0.38_job_response_properties".properties.delay_boot
modified entry .components.schemas."v0.0.38_job_response_properties".properties.derived_exit_code
modified entry .components.schemas."v0.0.38_job_response_properties".properties.group_id
modified entry .components.schemas."v0.0.38_job_response_properties".properties.job_id
modified entry .components.schemas."v0.0.38_job_response_properties".properties.last_sched_evaluation
modified entry .components.schemas."v0.0.38_job_response_properties".properties.max_cpus
modified entry .components.schemas."v0.0.38_job_response_properties".properties.max_nodes
modified entry .components.schemas."v0.0.38_job_response_properties".properties.nice
modified entry .components.schemas."v0.0.38_job_response_properties".properties.tasks_per_core
modified entry .components.schemas."v0.0.38_job_response_properties".properties.tasks_per_socket
modified entry .components.schemas."v0.0.38_job_response_properties".properties.tasks_per_board
modified entry .components.schemas."v0.0.38_job_response_properties".properties.cpus
modified entry .components.schemas."v0.0.38_job_response_properties".properties.node_count
modified entry .components.schemas."v0.0.38_job_response_properties".properties.tasks
modified entry .components.schemas."v0.0.38_job_response_properties".properties.het_job_id
modified entry .components.schemas."v0.0.38_job_response_properties".properties.het_job_offset
modified entry .components.schemas."v0.0.38_job_response_properties".properties.memory_per_node
modified entry .components.schemas."v0.0.38_job_response_properties".properties.memory_per_cpu
modified entry .components.schemas."v0.0.38_job_response_properties".properties.minimum_cpus_per_node
modified entry .components.schemas."v0.0.38_job_response_properties".properties.minimum_tmp_disk_per_node
modified entry .components.schemas."v0.0.38_job_response_properties".properties.priority
modified entry .components.schemas."v0.0.38_job_response_properties".properties.restart_cnt
modified entry .components.schemas."v0.0.38_job_response_properties".properties.sockets_per_board
modified entry .components.schemas."v0.0.38_job_response_properties".properties.sockets_per_node
modified entry .components.schemas."v0.0.38_job_response_properties".properties.time_limit
modified entry .components.schemas."v0.0.38_job_response_properties".properties.time_minimum
modified entry .components.schemas."v0.0.38_job_response_properties".properties.threads_per_core
modified entry .components.schemas."v0.0.38_job_response_properties".properties.user_id
modified entry .components.schemas."v0.0.38_job_response_properties".properties.allocated_nodes
modified entry .components.schemas."v0.0.38_job_response_properties".properties.cpus

Fix errant space after JOB_CPUS_SET flag.

Fix response.
  • .components.schemas."v0.0.37_job_response_properties".properties.flags

Add new /licenses endpoint

add
  • .components.schemas."v0.0.38_license"
  • .components.schemas."v0.0.38_licenses"
  • .paths."/slurm/v0.0.38/licenses"

Add meta entry

field added
  • .components.schemas."v0.0.38_diag".properties.meta
  • .components.schemas."v0.0.38_pings".properties.meta
  • .components.schemas."v0.0.38_partitions_response".properties.meta
  • .components.schemas."v0.0.38_reservations_response".properties.meta
  • .components.schemas."v0.0.38_job_submission_response".properties.meta
  • .components.schemas."v0.0.38_jobs_response".properties.meta
  • .components.schemas."v0.0.38_nodes_response".properties.meta
  • .components.schemas."v0.0.38_errors"

Add error response contents

new fields
  • .paths."/diag/"[].responses.default[]
  • .paths."/ping/"[].responses.default[]
  • .paths."/jobs/"[].responses.default[]
  • .paths."/job/{job_id}"[].responses.default[]
  • .paths."/job/submit"[].responses.default[]
  • .paths."/nodes/"[].responses.default[]
  • .paths."/node/{node_name}"[].responses.default[]
  • .paths."/partitions/"[].responses.default[]
  • .paths."/partition/{partition_name}"[].responses.default[]
  • .paths."/reservations/"[].responses.default[]
  • .paths."/reservation/{reservation_name}"[].responses.default[]

Rename errno to error_number

rename
  • .components.schemas."dbv0.0.38_error".properties.errnum
  • .components.schemas."dbv0.0.38_error".properties.error_number

Correct parameter styles to "form"

modified fields
  • .paths."/jobs/"[].parameters[]|select(.name="update_type)"
  • .paths."/job/{job_id}"[].get.parameters[]|select(.name="job_id)"
  • .paths."/job/{job_id}"[].post.parameters[]|select(.name="job_id)"
  • .paths."/nodes/"[].get.parameters[]|select(.name="update_time)"
  • .paths."/node/{node_name}"[].get.parameters[]|select(.name="node_name)"
  • .paths."/partitions/"[].get.parameters[]|select(.name="update_time)"
  • .paths."/partition/{partition_name}"[].get.parameters[]|select(.name="partition_name)"
  • .paths."/partition/{partition_name}"[].get.parameters[]|select(.name="update_time)"
  • .paths."/reservations/"[].get.parameters[]|select(.name="reservation_name)"
  • .paths."/reservations/"[].get.parameters[]|select(.name="update_time)"

Change operationId naming schema to include url path

modified fields
  • .paths[][].operationId

Response changed to move "cores" into "sockets" to differentiate which cores and sockets are allocated. Changed from named dictionary of node names to array containing objects with nodename set.

Updated response.
  • .components.schemas."v0.0.38_job_resources".properties.allocated_nodes
  • .components.schemas."v0.0.38_node_allocation"

New fields add to diag endpoint

new fields
  • .components.schemas."v0.0.38_diag_rpcm".rpcs_by_message_type
  • .components.schemas."v0.0.38_diag_rpcm".rpcs_by_user
  • .components.schemas."v0.0.38_diag_rpcm"
  • .components.schemas."v0.0.38_diag_rpcu"

Add container field to job description

new fields
  • .components.schemas."v0.0.38_job_response_properties".properties.container
  • .components.schemas."v0.0.38_job_properties".properties.container

Add method to delete associations using filters

new method
  • .paths."/associations/".delete

Rename response schema entry

previous path .components.schemas."dbv0.0.38_response_association_delete"
new path .components.schemas."dbv0.0.38_response_associations_delete"

openapi/v0.0.36

Deprecation notice

The v0.0.36 plugin has now been marked as deprecated.

openapi/v0.0.35

Removal notice

The v0.0.35 plugin has now been removed.

Slurm 21.08.8

openapi/dbv0.0.37

Move response fields in dbv0.0.37_diag under "statistics"

new parent field
  • .components.schemas."dbv0.0.37_diag".properties.statistics
subordinated fields
  • .components.schemas."dbv0.0.37_diag".properties.time_start
  • .components.schemas."dbv0.0.37_diag".properties.rollups
  • .components.schemas."dbv0.0.37_diag".properties.RPCs
  • .components.schemas."dbv0.0.37_diag".properties.users

Slurm 21.08.7

openapi/v0.0.37

Fix misspelling: change account_gather_freqency to account_gather_frequency (only the spec was wrong; the underlying code already worked with the correct spelling).

previous path .components.schemas."v0.0.37_job_properties".properties.account_gather_freqency
new path .components.schemas."v0.0.37_job_properties".properties.account_gather_frequency

Fix misspelling: change cluster_constraints to cluster_constraint (only the spec was wrong; the underlying code already worked with the correct spelling).

previous path .components.schemas."v0.0.37_job_properties".properties.cluster_constraints
new path .components.schemas."v0.0.37_job_properties".properties.cluster_constraint

Slurm 21.08.6

openapi/dbv0.0.37

Add association fields

new fields
  • .components.schemas."dbv0.0.37_association".properties.is_default
  • .components.schemas."dbv0.0.37_association".properties.max.tres.group.minutes
  • .components.schemas."dbv0.0.37_association".properties.max.tres.group.active
  • .components.schemas."dbv0.0.37_association".properties.max.jobs.active
  • .components.schemas."dbv0.0.37_association".properties.max.jobs.accruing
  • .components.schemas."dbv0.0.37_association".properties.max.jobs.total
  • .components.schemas."dbv0.0.37_association".properties.max.tres.minutes.per.job

Move incorrectly named field

old path .components.schemas."dbv0.0.37_qos".properties.limits.max.jobs.per.account
new path .components.schemas."dbv0.0.37_qos".properties.limits.max.jobs.active_jobs.per.account

Move incorrectly named field

old path .components.schemas."dbv0.0.37_qos".properties.limits.properties.max.properties.jobs.properties.per.properties.user
new path .components.schemas."dbv0.0.37_qos".properties.limits.properties.max.properties.jobs.properties.active_jobs.properties.per.properties.user

Add QOS fields

new fields
  • .components.schemas."dbv0.0.37_qos".properties.limits.properties.factor
  • .components.schemas."dbv0.0.37_qos".properties.limits.properties.max.properties.accruing.properties.per.properties.account
  • .components.schemas."dbv0.0.37_qos".properties.limits.properties.max.properties.accruing.properties.per.properties.user

Slurm 21.08.3

openapi/v0.0.37

Allow strings for JobIds instead of only numerical JobIds.

Change job_id parameter to string
  • .paths."/job/{job_id}".get.parameters[].schema
  • .paths."/job/{job_id}".post.parameters[].schema
  • .paths."/job/{job_id}".delete.parameters[].schema

openapi/dbv0.0.37

Correct placement of step TRES

previous path .components.schemas."dbv0.0.37_job_step".properties.step.properties.tres
new path .components.schemas."dbv0.0.37_job_step".properties.tres

openapi/dbv0.0.36

Correct placement of step TRES

previous path .components.schemas."dbv0.0.36_job_step".properties.step.properties.tres
new path .components.schemas."dbv0.0.36_job_step".properties.tres

Slurm 21.08.0

All of the OpenAPI plugins have moved from "src/slurmrestd/plugins/openapi/" to "src/plugins/openapi/".

openapi/v0.0.35

Deprecation notice

The v0.0.35 plugin has now been deprecated.

openapi/dbv0.0.37

add plugin

new dbv0.0.37 openapi plugin
  • clone of existing dbv0.0.36 openapi plugin
  • all paths renamed from v0.0.36 to v0.0.37

rename previous -> reason

previous path .components.schemas."dbv0.0.37_job".properties.state.previous
new path .components.schemas."dbv0.0.37_job".properties.state.reason

openapi/v0.0.37

add plugin

new v0.0.37 openapi plugin
  • clone of existing v0.0.36 openapi plugin
  • all paths renamed from v0.0.36 to v0.0.37

rename standard_in -> standard_input

previous path .components.schemas."v0.0.37_job_response_properties".properties.standard_in
new path .components.schemas."v0.0.37_job_response_properties".properties.standard_input

rename standard_out -> standard_output

previous path .components.schemas."v0.0.37_job_response_properties".properties.standard_out
new path .components.schemas."v0.0.37_job_response_properties".properties.standard_output

Add update_time field to Jobs query to allow clients to only get jobs list based on change timestamp.

new path .paths."/jobs/".get.parameters[0]

add api to fetch reservation(s) info

added path .paths."/reservations/"
added path .paths."/reservation/{reservation_name}"
added path .components.schemas."v0.0.37_reservation"

Mark job environment as required

new path .components.schemas."v0.0.37_job_properties".required

Correct preemption_mode type to list of strings

modify path .components.schemas."v0.0.37_partition".properties.preemption_mode

Set UNIX timestamps to int64 instead of string

modify path .components.schemas."v0.0.37_job_response_properties".properties.accrue_time
modify path .components.schemas."v0.0.37_job_response_properties".properties.eligible_time
modify path .components.schemas."v0.0.37_job_response_properties".properties.end_time
modify path .components.schemas."v0.0.37_job_response_properties".properties.preempt_time
modify path .components.schemas."v0.0.37_job_response_properties".properties.pre_sus_time
modify path .components.schemas."v0.0.37_job_response_properties".properties.resize_time

Add new fields to node properties

add path .components.schemas."v0.0.37_node".properties.tres_used
add path .components.schemas."v0.0.37_node".properties.tres_weighted
add path .components.schemas."v0.0.37_node".properties.alloc_cpus
add path .components.schemas."v0.0.37_node".properties.idle_cpus
add path .components.schemas."v0.0.37_node".properties.alloc_memory
add path .components.schemas."v0.0.37_node".properties.partitions

replace nodes_online with state in /partitions endpoint

removed path .components.schemas."v0.0.37_partitions_response".nodes_online
added path .components.schemas."v0.0.37_partitions_response".state

Add POST method for /associations

new path .paths."/associations/".post
new path .components.schemas."dbv0.0.37_response_associations"

Slurm 20.11.5

openapi/dbv0.0.36

Mark job environment as required

new path .components.schemas."v0.0.36_job_properties".required

Add state flags

new path .components.schemas."v0.0.37_node".properties.state_flags
new path .components.schemas."v0.0.37_node".properties.next_state_after_reboot_flags

Correct description for previous state

path .components.schemas."dbv0.0.36_job".properties.state.properties.previous

Slurm 20.11.3

openapi/dbv0.0.36

Correct structure of dbv0.0.36_tres_list

path .components.schemas."dbv0.0.36_tres_list"

Accept Job Query CSV parameters as a list (JSON array)

path .paths."/jobs/".get.parameters

Slurm 20.11.1

openapi/v0.0.36

Correct name for partition field

previous path .components.schemas."v0.0.36_partition".properties."min nodes per job"
new path .components.schemas."v0.0.36_partition".properties."min_nodes_per_job"

Add node comment field

new path .components.schemas."v0.0.36_node".properties.comment

Slurm 20.11.0

openapi/dbv0.0.36

Initial Implementation of database queries.

openapi/v0.0.36

add plugin

new v0.0.36 openapi plugin
  • clone of existing v0.0.35 openapi plugin.
  • all paths renamed from v0.0.35 to v0.0.36.

Add error schema

path .components.schemas."v0.0.36_error"

return array of nodes instead of dictionary

path .components.schemas."v0.0.36_nodes_response"

return array of partitions instead of dictionary

path .components.schemas."v0.0.36_partitions_response"

return array of pings instead of dictionary

path .components.schemas."v0.0.36_ping"

Simplify possible signals for canceling jobs

path .paths."/job/{job_id}".delete.parameters[1]

Simplify exclusive for jobs submissions

path .components.schemas."v0.0.36_job_properties".properties.exclusive

Simplify nodes for jobs submissions

path .components.schemas."v0.0.36_job_properties".properties.nodes

Change server URL

previous .servers[0].url=/
new .servers[0].url=/slurm/v0.0.36/

Add operationId tag

parent path .paths

prepend every schema with v0.0.36_

parent path .components.schemas

add tags openapi and slurm

new path .tags

add support contact

new path .info.contact

populate response from partitions query

new path .components.schemas.partitions_response

rename "node_info" to "nodes_response"

removed path .components.schemas.node_info
new path .components.schemas.nodes_response

add jobs query response properties

new path .components.schemas.diag

define response to diag

new path .components.schemas.diag

add job query response properties

new path .components.schemas.job_response_properties

remove "requested_node_by_index"

removed path .components.schemas.job_response_properties.properties.requested_node_by_index

rename "pn_min_tmp_disk" to "minimum_tmp_disk_per_node"

removed path .components.schemas.job_response_properties.properties.pn_min_tmp_disk
new path .components.schemas.job_response_properties.properties.minimum_tmp_disk_per_node

renamed "nodes" to "node_count"

removed path .components.schemas.job_response_properties.properties.nodes
new path .components.schemas.job_response_properties.properties.node_count

add get job responses schema

new path .components.schemas.job_submission_response

use job_submission for job_submit instead of job_properties

changed field .paths."/job/submit".requestBody.content."application/json"
changed field .paths."/job/submit".requestBody.content."application/x-yaml"
new path .components.schemas.job_submission

Set type for "job_properties" schema

new path .components.schemas.v0.0.36_job_properties.properties.type

add security bearer

new path .security

Slurm 20.02

v0.0.35

Initial Implementation of Slurm REST API.


Last modified 25 August 2023