Slurm Workload Manager - Slurm OpenAPI Plugin Release Notes

# 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.

## Slurm 22.05.0

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

#### 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 (src/plugins/openapi/dbv0.0.36/openapi.json)

#### Deprecation notice

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

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

#### 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 (src/plugins/openapi/v0.0.36/openapi.json)

#### Deprecation notice

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

### openapi/v0.0.35 (src/plugins/openapi/v0.0.35/openapi.json)

#### Removal notice

The v0.0.35 plugin has now been removed.

## Slurm 21.08.8

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

#### 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 (src/plugins/openapi/v0.0.37/openapi.json)

#### 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 (src/plugins/openapi/dbv0.0.37/openapi.json)

#### 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 (src/plugins/openapi/v0.0.37/openapi.json)

#### 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 (src/plugins/openapi/dbv0.0.37/openapi.json)

#### 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 (src/plugins/openapi/dbv0.0.36/openapi.json)

#### 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 (src/plugins/openapi/v0.0.35/openapi.json)

#### Deprecation notice

The v0.0.35 plugin has now been deprecated.

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

#### 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 (src/plugins/openapi/v0.0.37/openapi.json)

#### 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 (src/slurmrestd/plugins/openapi/dbv0.0.36/openapi.json)

#### 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 (src/slurmrestd/plugins/openapi/dbv0.0.36/openapi.json)

#### 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 (src/slurmrestd/plugins/openapi/v0.0.36/openapi.json)

#### 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 (src/slurmrestd/plugins/openapi/dbv0.0.36/openapi.json)

#### Inital Implementation of database queries.

### openapi/v0.0.36 (src/slurmrestd/plugins/openapi/v0.0.36/openapi.json)

#### 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 (src/slurmrestd/ops/openapi.json)

#### Inital Implementation of Slurm REST API.

Last modified 25 November 2021