EPIC API (v2)
Download OpenAPI specification:Download
REST API for interacting with EPIC (https://epic.zenotech.com) services.
Please note this API is in BETA and does not yet contain all EPIC functionality.
billing_limits_list
Return the current limits for the users billing profile
Authorizations:
Responses
Response Schema: application/json
required | Array of objects (Limit) List of limits for all teams linked to the current user's billing profile |
object <decimal> (Max limit) Maximum monthly spend limit for the current user's billing profile. The sum of all user/team limits may not exceed this value | |
max_limit_str | string (Max limit str) [ 1 .. 30 ] characters Maximum monthly spend limit for the current user's billing profile as a string in user's display currency |
object <decimal> (Total) The current total monthly spend limit for the current user's billing profile. | |
total_str | string (Total str) [ 1 .. 30 ] characters Current total monthly spend limit as a string |
Request samples
- curl
- python
curl -X GET \ --header "Authorization:Bearer api_key" \ 'http://epic.zenotech.com/api/v2/billing/limits/'
Response samples
- 200
{- "limits": [
- {
- "team": {
- "id": 0,
- "name": "string",
- "number_of_members": 0,
- "user_role": "string"
}, - "budget": {
- "monthly_limit": {
- "amount": 0,
- "currency": "string",
- "currency_symbol": "string"
}
}, - "project": {
- "pk": 0,
- "project_id": "string",
- "description": "string",
- "closed": true
}, - "jobauth": {
- "enabled": false,
- "all_jobs": false,
- "cost_threshold": {
- "amount": 0,
- "currency": "string",
- "currency_symbol": "string"
}, - "description_str": "string"
}, - "id": -1
}
], - "max_limit": {
- "amount": 0,
- "currency": "string"
}, - "max_limit_str": "string",
- "total": {
- "amount": 0,
- "currency": "string"
}, - "total_str": "string"
}
billing_limits_partial_update
Update billing limits for the users billing profile and associated teams
Authorizations:
Request Body schema: application/json
required | Array of objects (Limit) List of limits for all teams linked to the current user's billing profile |
Responses
Response Schema: application/json
required | Array of objects (Limit) List of limits for all teams linked to the current user's billing profile |
object <decimal> (Max limit) Maximum monthly spend limit for the current user's billing profile. The sum of all user/team limits may not exceed this value | |
max_limit_str | string (Max limit str) [ 1 .. 30 ] characters Maximum monthly spend limit for the current user's billing profile as a string in user's display currency |
object <decimal> (Total) The current total monthly spend limit for the current user's billing profile. | |
total_str | string (Total str) [ 1 .. 30 ] characters Current total monthly spend limit as a string |
Request samples
- Payload
- curl
- python
{- "limits": [
- {
- "team": { },
- "budget": {
- "monthly_limit": {
- "amount": 0,
- "currency": "string",
- "currency_symbol": "string"
}
}, - "project": {
- "description": "string",
- "closed": true
}, - "jobauth": {
- "enabled": false,
- "all_jobs": false,
- "cost_threshold": {
- "amount": 0,
- "currency": "string",
- "currency_symbol": "string"
}
}, - "id": -1
}
]
}
Response samples
- 200
{- "limits": [
- {
- "team": {
- "id": 0,
- "name": "string",
- "number_of_members": 0,
- "user_role": "string"
}, - "budget": {
- "monthly_limit": {
- "amount": 0,
- "currency": "string",
- "currency_symbol": "string"
}
}, - "project": {
- "pk": 0,
- "project_id": "string",
- "description": "string",
- "closed": true
}, - "jobauth": {
- "enabled": false,
- "all_jobs": false,
- "cost_threshold": {
- "amount": 0,
- "currency": "string",
- "currency_symbol": "string"
}, - "description_str": "string"
}, - "id": -1
}
], - "max_limit": {
- "amount": 0,
- "currency": "string"
}, - "max_limit_str": "string",
- "total": {
- "amount": 0,
- "currency": "string"
}, - "total_str": "string"
}
catalog_applications_list
List all available applications and the versions for that application
Authorizations:
query Parameters
product_name | string product_name |
limit | integer Number of results to return per page. |
offset | integer The initial index from which to return the results. |
Responses
Response Schema: application/json
count required | integer |
next | string or null <uri> |
previous | string or null <uri> |
required | Array of objects (BatchApplicationList) |
Request samples
- curl
- python
curl -X GET \ --header "Authorization:Bearer api_key" \ 'http://epic.zenotech.com/api/v2/catalog/applications/'
Response samples
- 200
{- "count": 0,
- "results": [
- {
- "id": 0,
- "product": {
- "name": "string",
- "description": "string",
- "small_print": "string"
}, - "versions": [
- {
- "app_code": "string",
- "version": "string",
- "available_on": [
- "string"
]
}
], - "permission_to_use": true,
- "supports_cases": true
}
]
}
catalog_applications_read
Retreive the details for the application with the application product name {product}
Authorizations:
path Parameters
application required | string |
Responses
Response Schema: application/json
id | integer (ID) |
required | object (ProductName) |
Array of objects (BatchApplicationVersionDetails) | |
permission_to_use | boolean (Permission to use) Does your account have permission to use this application? |
Request samples
- curl
- python
curl -X GET \ --header "Authorization:Bearer api_key" \ 'http://epic.zenotech.com/api/v2/catalog/applications/%7Bapplication%7D/'
Response samples
- 200
{- "id": 0,
- "product": {
- "name": "string",
- "description": "string",
- "small_print": "string"
}, - "version": [
- {
- "app_code": "string",
- "version": "string",
- "available_on": [
- "string"
]
}
], - "permission_to_use": true
}
catalog_clusters_list
View available cluster queues
Authorizations:
query Parameters
cluster_name | string cluster_name |
queue_name | string queue_name |
allowed_apps | string allowed_apps |
limit | integer Number of results to return per page. |
offset | integer The initial index from which to return the results. |
Responses
Response Schema: application/json
count required | integer |
next | string or null <uri> |
previous | string or null <uri> |
required | Array of objects (BatchQueueDetails) |
Request samples
- curl
- python
curl -X GET \ --header "Authorization:Bearer api_key" \ 'http://epic.zenotech.com/api/v2/catalog/clusters/'
Response samples
- 200
{- "count": 0,
- "results": [
- {
- "queue_code": "string",
- "name": "string",
- "description": "string",
- "cluster_name": "string",
- "max_runtime": 2147483647,
- "max_allocation": 2147483647,
- "reported_avail_tasks": 2147483647,
- "reported_max_tasks": 2147483647,
- "sla": {
- "name": "string",
- "description": "string"
}, - "maintenance_mode": true,
- "resource_config": {
- "accelerator": {
- "name": "string",
- "acc_class": "string",
- "quantity": -2147483648,
- "description": "string"
}, - "cpus": 1,
- "cpu_generation": "string",
- "cores_per_cpu": 1,
- "threads_per_core": 1,
- "memory": "string"
}, - "supports_local_submission": true
}
]
}
catalog_clusters_read
Retreive the details for the cluster queue with queue code {queue_code}
Authorizations:
path Parameters
queue_code required | string |
Responses
Response Schema: application/json
queue_code required | string (Queue code) [ 1 .. 100 ] characters |
name | string (Name) [ 1 .. 100 ] characters |
description | string or null (Description) <= 1000 characters |
cluster_name | string (Cluster name) [ 1 .. 100 ] characters |
max_runtime | integer (Max runtime) [ 0 .. 2147483647 ] |
max_allocation | integer (Max allocation) [ 0 .. 2147483647 ] |
reported_avail_tasks | integer or null (Reported avail tasks) [ 0 .. 2147483647 ] |
reported_max_tasks | integer or null (Reported max tasks) [ 0 .. 2147483647 ] |
required | object (SLA) |
maintenance_mode | boolean (Maintenance mode) |
required | object (ClusterNodeConfig) |
supports_local_submission | boolean (Supports local submission) |
Request samples
- curl
- python
curl -X GET \ --header "Authorization:Bearer api_key" \ 'http://epic.zenotech.com/api/v2/catalog/clusters/%7Bqueue_code%7D/'
Response samples
- 200
{- "queue_code": "string",
- "name": "string",
- "description": "string",
- "cluster_name": "string",
- "max_runtime": 2147483647,
- "max_allocation": 2147483647,
- "reported_avail_tasks": 2147483647,
- "reported_max_tasks": 2147483647,
- "sla": {
- "name": "string",
- "description": "string"
}, - "maintenance_mode": true,
- "resource_config": {
- "accelerator": {
- "name": "string",
- "acc_class": "string",
- "quantity": -2147483648,
- "description": "string"
}, - "cpus": 1,
- "cpu_generation": "string",
- "cores_per_cpu": 1,
- "threads_per_core": 1,
- "memory": "string"
}, - "supports_local_submission": true
}
catalog_desktop_list
List the available node types for desktop instances
Authorizations:
query Parameters
limit | integer Number of results to return per page. |
offset | integer The initial index from which to return the results. |
Responses
Response Schema: application/json
count required | integer |
next | string or null <uri> |
previous | string or null <uri> |
required | Array of objects (DesktopNodeType) |
Request samples
- curl
- python
curl -X GET \ --header "Authorization:Bearer api_key" \ 'http://epic.zenotech.com/api/v2/catalog/desktop/'
Response samples
- 200
{- "count": 0,
- "results": [
- {
- "node_code": "string",
- "name": "string",
- "description": "string",
- "cores": 0,
- "gpus": 0
}
]
}
catalog_desktop_read
Get the details of the desktop node type with code node_code
Authorizations:
path Parameters
node_code required | string |
Responses
Response Schema: application/json
node_code | string or null (Node code) <= 50 characters The code for this node type to be used in DesktopNodeLaunchSpec |
name | string (Name) [ 1 .. 100 ] characters This provides the name of this node type |
description | string (Description) [ 1 .. 100 ] characters This provides a detailed description of this node type |
cores | integer (Cores) >= 0 Number of cores that this desktop node has |
gpus | integer (Gpus) >= 0 Number of gpus that this desktop node has |
Request samples
- curl
- python
curl -X GET \ --header "Authorization:Bearer api_key" \ 'http://epic.zenotech.com/api/v2/catalog/desktop/%7Bnode_code%7D/'
Response samples
- 200
{- "node_code": "string",
- "name": "string",
- "description": "string",
- "cores": 0,
- "gpus": 0
}
config_read
Fetch the application configuration for
Authorizations:
path Parameters
app_code required | string |
queue_code required | string |
Responses
Response Schema: application/json
required | object (ApplicationConfigurationSerialiser) |
required | object (Template) |
required | Array of objects (EnvironmentVariable) |
created | string <date-time> (Created) |
modified | string <date-time> (Modified) |
Request samples
- curl
- python
curl -X GET \ --header "Authorization:Bearer api_key" \ 'http://epic.zenotech.com/api/v2/config/%7Bapp_code%7D/%7Bqueue_code%7D/'
Response samples
- 200
{- "application_configuration": {
- "start_script": {
- "name": "string",
- "content": "string"
}, - "stop_script": {
- "name": "string",
- "content": "string"
}, - "created": "2019-08-24T14:15:22Z",
- "modified": "2019-08-24T14:15:22Z",
- "name": "string"
}, - "environment_script": {
- "name": "string",
- "content": "string"
}, - "env_variables": [
- {
- "variable_name": "string",
- "value": "string"
}
], - "created": "2019-08-24T14:15:22Z",
- "modified": "2019-08-24T14:15:22Z"
}
data_file_list
List all files your user has access to
Authorizations:
query Parameters
name | string name |
path | string path |
limit | integer Number of results to return per page. |
offset | integer The initial index from which to return the results. |
Responses
Response Schema: application/json
count required | integer |
next | string or null <uri> |
previous | string or null <uri> |
required | Array of objects (File) |
Request samples
- curl
- python
curl -X GET \ --header "Authorization:Bearer api_key" \ 'http://epic.zenotech.com/api/v2/data/file/'
Response samples
- 200
{- "count": 0,
- "results": [
- {
- "id": 0,
- "created": "2019-08-24T14:15:22Z",
- "modified": "2019-08-24T14:15:22Z",
- "name": "string",
- "obj_key": "string",
- "size": -9223372036854776000,
- "last_modified": "2019-08-24T14:15:22Z",
- "folder": 0
}
]
}
data_file_read
See the details for a particular file
Authorizations:
path Parameters
id required | string |
Responses
Response Schema: application/json
id | integer (ID) ID for this folder |
meta_data | object (Meta data) File meta-data |
created | string <date-time> (Created) Creation time |
modified | string <date-time> (Modified) |
name | string (Name) non-empty File name |
obj_key | string (Obj key) non-empty S3 key reference |
size | integer (Size) [ -9223372036854776000 .. 9223372036854776000 ] |
last_modified | string or null <date-time> (Last modified) Last modified time |
folder | integer or null (Folder) Folder name |
Request samples
- curl
- python
curl -X GET \ --header "Authorization:Bearer api_key" \ 'http://epic.zenotech.com/api/v2/data/file/%7Bid%7D/'
Response samples
- 200
{- "id": 0,
- "meta_data": { },
- "created": "2019-08-24T14:15:22Z",
- "modified": "2019-08-24T14:15:22Z",
- "name": "string",
- "obj_key": "string",
- "size": -9223372036854776000,
- "last_modified": "2019-08-24T14:15:22Z",
- "folder": 0
}
data_folder_list
List all folders your user has access to
Authorizations:
query Parameters
name | string name |
path | string path |
limit | integer Number of results to return per page. |
offset | integer The initial index from which to return the results. |
Responses
Response Schema: application/json
count required | integer |
next | string or null <uri> |
previous | string or null <uri> |
required | Array of objects (Folder) |
Request samples
- curl
- python
curl -X GET \ --header "Authorization:Bearer api_key" \ 'http://epic.zenotech.com/api/v2/data/folder/'
Response samples
- 200
{- "count": 0,
- "results": [
- {
- "id": 0,
- "created": "2019-08-24T14:15:22Z",
- "modified": "2019-08-24T14:15:22Z",
- "name": "string",
- "obj_key": "string",
- "last_modified": "2019-08-24T14:15:22Z"
}
]
}
data_folder_read
See the details for a particular folder
Authorizations:
path Parameters
id required | string |
Responses
Response Schema: application/json
id | integer (ID) ID for this folder |
folder_size | string (Folder size) Folder size in bytes |
created | string <date-time> (Created) Creation time |
modified | string <date-time> (Modified) Last modified time |
name | string (Name) non-empty Folder name |
obj_key | string (Obj key) non-empty S3 key reference |
last_modified | string or null <date-time> (Last modified) Last modified time |
Request samples
- curl
- python
curl -X GET \ --header "Authorization:Bearer api_key" \ 'http://epic.zenotech.com/api/v2/data/folder/%7Bid%7D/'
Response samples
- 200
{- "id": 0,
- "folder_size": "string",
- "created": "2019-08-24T14:15:22Z",
- "modified": "2019-08-24T14:15:22Z",
- "name": "string",
- "obj_key": "string",
- "last_modified": "2019-08-24T14:15:22Z"
}
data_session_list
Get connection details for accessing the EPIC data store. Returns a temporary credenital to upload and download data to EPIC
Authorizations:
Responses
Response Schema: application/json
s3_obj_key | string (S3 obj key) non-empty Root path for EPIC data store |
s3_location | string (S3 location) non-empty S3 Bucket name for EPIC data store |
aws_region | string (Aws region) AWS Region |
object (SessionToken) |
Request samples
- curl
- python
curl -X GET \ --header "Authorization:Bearer api_key" \ 'http://epic.zenotech.com/api/v2/data/session/'
Response samples
- 200
{- "s3_obj_key": "string",
- "s3_location": "string",
- "aws_region": "string",
- "session_token": {
- "aws_key_id": "string",
- "aws_secret_key": "string",
- "aws_session_token": "string",
- "expiration": "2019-08-24T14:15:22Z"
}
}
desktop_list
List Desktop instances
Authorizations:
query Parameters
limit | integer Number of results to return per page. |
offset | integer The initial index from which to return the results. |
Responses
Response Schema: application/json
count required | integer |
next | string or null <uri> |
previous | string or null <uri> |
required | Array of objects (DesktopInstance) |
Request samples
- curl
- python
curl -X GET \ --header "Authorization:Bearer api_key" \ 'http://epic.zenotech.com/api/v2/desktop/'
Response samples
- 200
{- "count": 0,
- "results": [
- {
- "id": 0,
- "status": "string",
- "connection_string": "string",
- "node_type": {
- "node_code": "string",
- "name": "string",
- "description": "string",
- "cores": 0,
- "gpus": 0
}, - "launched_by": "string",
- "team": "string",
- "created": "2019-08-24T14:15:22Z",
- "runtime": "string"
}
]
}
desktop_create
Launch a new desktop instance.
Authorizations:
Request Body schema: application/json
node_code required | string (Node code) non-empty node_code of the node type to launch. Valid values are obtained from the catalog/desktop/ endpoint |
application_version | integer (Application version) |
runtime required | integer (Runtime) >= 1 Runtime in hours to run this desktop node for. This is the maximum runtime as the viz node can be stopped earlier and you will only be charged for the elapsed time |
secure_ip | boolean (Secure ip) Default: false Should we restrict which IPs can connect to this node? |
ip_address | string <ipv4> (Ip address) non-empty IPv4 Address to restrict connections to this node from |
invoice_reference | string (Invoice reference) [ 1 .. 100 ] characters Invoice reference - this text will appear on the monthly invoice against this nodes charges |
required | object (DataSpec) Input data specification for this desktop |
mount_type required | string (Mount type) Enum: "online" "offline" How should the data folder be mounted to the desktop. Offline takes a copy of the data and will not be automatically synced back to the data store. |
project | integer (Project) >= -1 Project ID to bill this desktop node against |
Responses
Response Schema: application/json
id | integer (ID) |
status | string (Status) Current desktop status |
connection_string | string or null (Connection string) The URL or hostname of the desktop |
object (DesktopNodeType) | |
launched_by | string (Launched by) Full name of user that launched the desktop |
team | string or null (Team) ID of the active Team for the desktop |
created | string <date-time> (Created) |
runtime | string (Runtime) The requested runtime in hours |
Request samples
- Payload
- curl
- python
{- "node_code": "string",
- "application_version": 0,
- "runtime": 1,
- "secure_ip": false,
- "ip_address": "192.168.0.1",
- "invoice_reference": "string",
- "data_path": {
- "path": "string"
}, - "mount_type": "online",
- "project": -1
}
Response samples
- 201
{- "id": 0,
- "status": "string",
- "connection_string": "string",
- "node_type": {
- "node_code": "string",
- "name": "string",
- "description": "string",
- "cores": 0,
- "gpus": 0
}, - "launched_by": "string",
- "team": "string",
- "created": "2019-08-24T14:15:22Z",
- "runtime": "string"
}
desktop_quote
Provides a price quote based upon the given VizNodeLaunchSpec. This will also provide information as to whether it meets billing budget criteria for the given team / project combination
Authorizations:
Request Body schema: application/json
node_code required | string (Node code) non-empty node_code of the node type to launch. Valid values are obtained from the catalog/desktop/ endpoint |
application_version | integer (Application version) |
runtime required | integer (Runtime) >= 1 Runtime in hours to run this desktop node for. This is the maximum runtime as the viz node can be stopped earlier and you will only be charged for the elapsed time |
Responses
Response Schema: application/json
object <decimal> (Cost) The cost of the requested resource. May only be present if the valid field is true. | |
valid | boolean (Valid) Whether the requested spec represents a valid configuration that could be launched |
reason | string (Reason) If the configuration is invalid this string will contain the reason why the configuration is not valid |
Request samples
- Payload
- curl
- python
{- "node_code": "string",
- "application_version": 0,
- "runtime": 1
}
Response samples
- 200
{- "cost": {
- "amount": 0,
- "currency": "string"
}, - "valid": true,
- "reason": "string"
}
desktop_read
Authorizations:
path Parameters
id required | string |
Responses
Response Schema: application/json
id | integer (ID) |
status | string (Status) Current desktop status |
connection_string | string or null (Connection string) The URL or hostname of the desktop |
object (DesktopNodeType) | |
launched_by | string (Launched by) Full name of user that launched the desktop |
team | string or null (Team) ID of the active Team for the desktop |
created | string <date-time> (Created) |
runtime | string (Runtime) The requested runtime in hours |
Request samples
- curl
- python
curl -X GET \ --header "Authorization:Bearer api_key" \ 'http://epic.zenotech.com/api/v2/desktop/%7Bid%7D/'
Response samples
- 200
{- "id": 0,
- "status": "string",
- "connection_string": "string",
- "node_type": {
- "node_code": "string",
- "name": "string",
- "description": "string",
- "cores": 0,
- "gpus": 0
}, - "launched_by": "string",
- "team": "string",
- "created": "2019-08-24T14:15:22Z",
- "runtime": "string"
}
job_list
List the jobs instances in EPIC
Authorizations:
query Parameters
job_array | string job_array |
limit | integer Number of results to return per page. |
offset | integer The initial index from which to return the results. |
Responses
Response Schema: application/json
count required | integer |
next | string or null <uri> |
previous | string or null <uri> |
required | Array of objects (Job) |
Request samples
- curl
- python
curl -X GET \ --header "Authorization:Bearer api_key" \ 'http://epic.zenotech.com/api/v2/job/'
Response samples
- 200
{- "count": 0,
- "results": [
- {
- "id": 0,
- "name": "string",
- "app": "string",
- "app_options": { },
- "application_version": "string",
- "cost": "string",
- "status": "string",
- "submitted_by": "string",
- "submitted_at": "string",
- "finished": true,
- "resource": {
- "queue_code": "string",
- "name": "string",
- "description": "string",
- "cluster_name": "string",
- "max_runtime": 2147483647,
- "max_allocation": 2147483647,
- "reported_avail_tasks": 2147483647,
- "reported_max_tasks": 2147483647,
- "sla": {
- "name": "string",
- "description": "string"
}, - "maintenance_mode": true,
- "resource_config": {
- "accelerator": {
- "name": "string",
- "acc_class": "string",
- "quantity": -2147483648,
- "description": "string"
}, - "cpus": 1,
- "cpu_generation": "string",
- "cores_per_cpu": 1,
- "threads_per_core": 1,
- "memory": "string"
}, - "supports_local_submission": true
}, - "project": 1,
- "invoice_reference": "string",
- "config": {
- "upload": [
- "failure",
- "cancel",
- "complete"
], - "overwrite_existing": true,
- "data_sync_interval": 0,
- "local_submission": false
}, - "job_steps": [
- {
- "id": 0,
- "parent_job": 0,
- "run_if_previous_step_fails": true,
- "step_name": "string",
- "node_count": 1,
- "num_tasks": 1,
- "tasks_per_node": 1,
- "threads_per_task": 1,
- "max_runtime": 1,
- "status": "string",
- "exit_code": -2147483648,
- "start": "2019-08-24T14:15:22Z",
- "end": "2019-08-24T14:15:22Z",
- "wallclock": "string",
- "local_job_id": -2147483648
}
], - "input_data": {
- "path": "string"
}, - "requires_auth": true,
- "array": 0
}
]
}
job_create
Create a new job bssased on the submitted job specification. App and Queue codes can be retreived from the catalog endpoints.
Authorizations:
Request Body schema: application/json
name | string (Name) [ 1 .. 100 ] characters Default: "Job Array" Name of job array - only required for more than one job |
required | object (JobConfiguration) Job configuration options |
required | Array of objects (JobDataBinding) List of job specs to launch |
object (DataSpec) Input data specification for this desktop |
Responses
Response Schema: application/json
id | integer (ID) The ID for this job |
name | string (Name) Name of this job |
app | string (App) [ 1 .. 30 ] characters Name of the application that this job uses |
app_options | object (App options) Job app options |
application_version | string (Application version) non-empty Application version ID |
cost | string (Cost) [ 1 .. 30 ] characters Maximum cost for running this job |
status | string (Status) [ 1 .. 100 ] characters Current status of this job |
submitted_by | string (Submitted by) Name of the user who submitted this job |
submitted_at | string (Submitted at) Date at which this job was submitted |
finished | boolean (Finished) Has this job finished? |
object (BatchQueueDetails) | |
project | integer (Project) >= 1 Project ID to bill this job against |
invoice_reference | string (Invoice reference) [ 1 .. 100 ] characters Invoice reference - this text will appear on the monthly invoice against this jobs charges |
object (JobConfiguration) Job configuration options | |
Array of objects (JobStep) The job steps associated with this Job | |
object (DataSpec) Input data specification for this desktop | |
requires_auth | boolean (Requires auth) Does this job require additional authorisation? |
array | integer (Array) ID of associated Job Array |
Request samples
- Payload
- curl
- python
{- "name": "Job Array",
- "config": {
- "upload": [
- "failure",
- "cancel",
- "complete"
], - "overwrite_existing": true,
- "data_sync_interval": 0,
- "local_submission": false
}, - "jobs": [
- {
- "name": "string",
- "spec": {
- "app_code": "string",
- "project": -1,
- "tasks": [
- {
- "reference": "string",
- "partitions": 1,
- "runtime": 1,
- "task_distribution": "core",
- "tasks_per_device": 1,
- "hyperthreading": true
}
], - "queue_code": "string"
}, - "app_options": { },
- "cluster": {
- "queue_code": "string"
}, - "input_data": {
- "path": "string"
}
}
], - "common_data": {
- "path": "string"
}
}
Response samples
- 201
[- {
- "id": 0,
- "name": "string",
- "app": "string",
- "app_options": { },
- "application_version": "string",
- "cost": "string",
- "status": "string",
- "submitted_by": "string",
- "submitted_at": "string",
- "finished": true,
- "resource": {
- "queue_code": "string",
- "name": "string",
- "description": "string",
- "cluster_name": "string",
- "max_runtime": 2147483647,
- "max_allocation": 2147483647,
- "reported_avail_tasks": 2147483647,
- "reported_max_tasks": 2147483647,
- "sla": {
- "name": "string",
- "description": "string"
}, - "maintenance_mode": true,
- "resource_config": {
- "accelerator": {
- "name": "string",
- "acc_class": "string",
- "quantity": -2147483648,
- "description": "string"
}, - "cpus": 1,
- "cpu_generation": "string",
- "cores_per_cpu": 1,
- "threads_per_core": 1,
- "memory": "string"
}, - "supports_local_submission": true
}, - "project": 1,
- "invoice_reference": "string",
- "config": {
- "upload": [
- "failure",
- "cancel",
- "complete"
], - "overwrite_existing": true,
- "data_sync_interval": 0,
- "local_submission": false
}, - "job_steps": [
- {
- "id": 0,
- "parent_job": 0,
- "run_if_previous_step_fails": true,
- "step_name": "string",
- "node_count": 1,
- "num_tasks": 1,
- "tasks_per_node": 1,
- "threads_per_task": 1,
- "max_runtime": 1,
- "status": "string",
- "exit_code": -2147483648,
- "start": "2019-08-24T14:15:22Z",
- "end": "2019-08-24T14:15:22Z",
- "wallclock": "string",
- "local_job_id": -2147483648
}
], - "input_data": {
- "path": "string"
}, - "requires_auth": true,
- "array": 0
}
]
job_quote
Provides a price quote based upon the given BatchJobLaunchSpec. Quotes will be returned for clusters that the user/team has permission to use and that support the requested application, task distribution and runtime. When submitting multiple steps in a the job specification then the task reference may be used to identify individual steps.
Authorizations:
Request Body schema: application/json
app_code required | string (App code) non-empty The App Code of the application_version to launch. Valid values are obtained from the catalog/applications/ endpoint |
project | integer (Project) >= -1 Project ID to bill this job against |
required | Array of objects (JobTaskSpec) List of task definitions that make up this job |
queue_code | string (Queue code) non-empty (Optional) Code of cluster queue for the quote. This will just return the quotes for that queue. If not present the quote will be for all available queues |
Responses
Response Schema: application/json
Array of objects (TaskQuote) List of job quotes for individual tasks in this request | |
Array of objects (TaskQuote) List of job quote totals for this request |
Request samples
- Payload
- curl
- python
{- "app_code": "string",
- "project": -1,
- "tasks": [
- {
- "reference": "string",
- "partitions": 1,
- "runtime": 1,
- "task_distribution": "core",
- "tasks_per_device": 1,
- "hyperthreading": true
}
], - "queue_code": "string"
}
Response samples
- 200
{- "task_quotes": [
- {
- "reference": "string",
- "queue_code": "string",
- "iaas_cost": {
- "amount": 0,
- "currency": "string",
- "currency_symbol": "string"
}, - "software_cost": {
- "amount": 0,
- "currency": "string",
- "currency_symbol": "string"
}, - "service_charge": {
- "amount": 0,
- "currency": "string",
- "currency_symbol": "string"
}, - "discount": {
- "amount": 0,
- "currency": "string",
- "currency_symbol": "string"
}, - "tax": {
- "amount": 0,
- "currency": "string",
- "currency_symbol": "string"
}, - "total": {
- "amount": 0,
- "currency": "string",
- "currency_symbol": "string"
}
}
], - "totals": [
- {
- "reference": "string",
- "queue_code": "string",
- "iaas_cost": {
- "amount": 0,
- "currency": "string",
- "currency_symbol": "string"
}, - "software_cost": {
- "amount": 0,
- "currency": "string",
- "currency_symbol": "string"
}, - "service_charge": {
- "amount": 0,
- "currency": "string",
- "currency_symbol": "string"
}, - "discount": {
- "amount": 0,
- "currency": "string",
- "currency_symbol": "string"
}, - "tax": {
- "amount": 0,
- "currency": "string",
- "currency_symbol": "string"
}, - "total": {
- "amount": 0,
- "currency": "string",
- "currency_symbol": "string"
}
}
]
}
job_read
See the details for the job instance with ID {id}
Authorizations:
path Parameters
id required | string |
Responses
Response Schema: application/json
id | integer (ID) The ID for this job |
name | string (Name) Name of this job |
app | string (App) [ 1 .. 30 ] characters Name of the application that this job uses |
app_options | object (App options) Job app options |
application_version | string (Application version) non-empty Application version ID |
cost | string (Cost) [ 1 .. 30 ] characters Maximum cost for running this job |
status | string (Status) [ 1 .. 100 ] characters Current status of this job |
submitted_by | string (Submitted by) Name of the user who submitted this job |
submitted_at | string (Submitted at) Date at which this job was submitted |
finished | boolean (Finished) Has this job finished? |
object (BatchQueueDetails) | |
project | integer (Project) >= 1 Project ID to bill this job against |
invoice_reference | string (Invoice reference) [ 1 .. 100 ] characters Invoice reference - this text will appear on the monthly invoice against this jobs charges |
object (JobConfiguration) Job configuration options | |
Array of objects (JobStep) The job steps associated with this Job | |
object (DataSpec) Input data specification for this desktop | |
requires_auth | boolean (Requires auth) Does this job require additional authorisation? |
array | integer (Array) ID of associated Job Array |
Request samples
- curl
- python
curl -X GET \ --header "Authorization:Bearer api_key" \ 'http://epic.zenotech.com/api/v2/job/%7Bid%7D/'
Response samples
- 200
{- "id": 0,
- "name": "string",
- "app": "string",
- "app_options": { },
- "application_version": "string",
- "cost": "string",
- "status": "string",
- "submitted_by": "string",
- "submitted_at": "string",
- "finished": true,
- "resource": {
- "queue_code": "string",
- "name": "string",
- "description": "string",
- "cluster_name": "string",
- "max_runtime": 2147483647,
- "max_allocation": 2147483647,
- "reported_avail_tasks": 2147483647,
- "reported_max_tasks": 2147483647,
- "sla": {
- "name": "string",
- "description": "string"
}, - "maintenance_mode": true,
- "resource_config": {
- "accelerator": {
- "name": "string",
- "acc_class": "string",
- "quantity": -2147483648,
- "description": "string"
}, - "cpus": 1,
- "cpu_generation": "string",
- "cores_per_cpu": 1,
- "threads_per_core": 1,
- "memory": "string"
}, - "supports_local_submission": true
}, - "project": 1,
- "invoice_reference": "string",
- "config": {
- "upload": [
- "failure",
- "cancel",
- "complete"
], - "overwrite_existing": true,
- "data_sync_interval": 0,
- "local_submission": false
}, - "job_steps": [
- {
- "id": 0,
- "parent_job": 0,
- "run_if_previous_step_fails": true,
- "step_name": "string",
- "node_count": 1,
- "num_tasks": 1,
- "tasks_per_node": 1,
- "threads_per_task": 1,
- "max_runtime": 1,
- "status": "string",
- "exit_code": -2147483648,
- "start": "2019-08-24T14:15:22Z",
- "end": "2019-08-24T14:15:22Z",
- "wallclock": "string",
- "local_job_id": -2147483648
}
], - "input_data": {
- "path": "string"
}, - "requires_auth": true,
- "array": 0
}
job_partial_update
Update the job options for job instance with ID {id}
Authorizations:
path Parameters
id required | string |
Request Body schema: application/json
app_options required | object or null (App options) Application specific options to update |
required | object (JobConfiguration) Job configuration options |
Responses
Response Schema: application/json
app_options required | object or null (App options) Application specific options to update |
required | object (JobConfiguration) Job configuration options |
Request samples
- Payload
- curl
- python
{- "app_options": { },
- "config": {
- "upload": [
- "failure",
- "cancel",
- "complete"
], - "overwrite_existing": true,
- "data_sync_interval": 0,
- "local_submission": false
}
}
Response samples
- 200
{- "app_options": { },
- "config": {
- "upload": [
- "failure",
- "cancel",
- "complete"
], - "overwrite_existing": true,
- "data_sync_interval": 0,
- "local_submission": false
}
}
job_auth_read
Get the authorisation status for job with ID {id}
Authorizations:
path Parameters
id required | string |
Responses
Response Schema: application/json
required | boolean (Required) Is authorisation required for this job? |
state | string (State) Enum: "PENDING" "AUTHORISED" "REJECTED" |
object (JobSummary) | |
object (UserName) | |
permissions | string (Permissions) |
Request samples
- curl
- python
curl -X GET \ --header "Authorization:Bearer api_key" \ 'http://epic.zenotech.com/api/v2/job/%7Bid%7D/auth/'
Response samples
- 200
{- "required": true,
- "state": "PENDING",
- "job": {
- "id": 0,
- "name": "string",
- "app": "string",
- "cost": "string",
- "submitted_by": "string",
- "submitted_at": "string"
}, - "user_profile": {
- "display_name": "string"
}, - "permissions": "string"
}
job_auth_update
Update the authorisation status for job with ID {id}
Authorizations:
path Parameters
id required | string |
Request Body schema: application/json
state | string (State) Enum: "PENDING" "AUTHORISED" "REJECTED" |
object (JobSummary) | |
object (UserName) |
Responses
Response Schema: application/json
required | boolean (Required) Is authorisation required for this job? |
state | string (State) Enum: "PENDING" "AUTHORISED" "REJECTED" |
object (JobSummary) | |
object (UserName) | |
permissions | string (Permissions) |
Request samples
- Payload
- curl
- python
{- "state": "PENDING",
- "job": { },
- "user_profile": { }
}
Response samples
- 200
{- "required": true,
- "state": "PENDING",
- "job": {
- "id": 0,
- "name": "string",
- "app": "string",
- "cost": "string",
- "submitted_by": "string",
- "submitted_at": "string"
}, - "user_profile": {
- "display_name": "string"
}, - "permissions": "string"
}
job_residuals_read
Retreive the residuals for job with ID {id}
Authorizations:
path Parameters
id required | integer A unique integer value identifying this batch job instance. |
query Parameters
variables | Array of strings Return data values for these variable names |
Responses
Response Schema: application/json
variables required | Array of strings[ items non-empty ] A list of the available residual variable names |
Array of objects (JobResidualData) The values of an individual residual variable, including xaxis data |
Request samples
- curl
- python
curl -X GET \ --header "Authorization:Bearer api_key" \ 'http://epic.zenotech.com/api/v2/job/%7Bid%7D/residuals/'
Response samples
- 200
{- "variables": [
- "string"
], - "residual_values": [
- {
- "variable_name": "string",
- "values": [
- "string"
]
}
]
}
jobauth_list
Authorizations:
query Parameters
limit | integer Number of results to return per page. |
offset | integer The initial index from which to return the results. |
Responses
Response Schema: application/json
count required | integer |
next | string or null <uri> |
previous | string or null <uri> |
required | Array of objects (JobAuthStatus) |
Request samples
- curl
- python
curl -X GET \ --header "Authorization:Bearer api_key" \ 'http://epic.zenotech.com/api/v2/jobauth/'
Response samples
- 200
{- "count": 0,
- "results": [
- {
- "required": true,
- "state": "PENDING",
- "job": {
- "id": 0,
- "name": "string",
- "app": "string",
- "cost": "string",
- "submitted_by": "string",
- "submitted_at": "string"
}, - "user_profile": {
- "display_name": "string"
}, - "permissions": "string"
}
]
}
jobauth_read
Get the authorisation status for job with ID {id}
Authorizations:
path Parameters
job required | string A unique value identifying this job authorisation. |
Responses
Response Schema: application/json
required | boolean (Required) Is authorisation required for this job? |
state | string (State) Enum: "PENDING" "AUTHORISED" "REJECTED" |
object (JobSummary) | |
object (UserName) | |
permissions | string (Permissions) |
Request samples
- curl
- python
curl -X GET \ --header "Authorization:Bearer api_key" \ 'http://epic.zenotech.com/api/v2/jobauth/%7Bjob%7D/'
Response samples
- 200
{- "required": true,
- "state": "PENDING",
- "job": {
- "id": 0,
- "name": "string",
- "app": "string",
- "cost": "string",
- "submitted_by": "string",
- "submitted_at": "string"
}, - "user_profile": {
- "display_name": "string"
}, - "permissions": "string"
}
jobauth_update
Update the authorisation status for job with ID {id}
Authorizations:
path Parameters
job required | string A unique value identifying this job authorisation. |
Request Body schema: application/json
state | string (State) Enum: "PENDING" "AUTHORISED" "REJECTED" |
object (JobSummary) | |
object (UserName) |
Responses
Response Schema: application/json
required | boolean (Required) Is authorisation required for this job? |
state | string (State) Enum: "PENDING" "AUTHORISED" "REJECTED" |
object (JobSummary) | |
object (UserName) | |
permissions | string (Permissions) |
Request samples
- Payload
- curl
- python
{- "state": "PENDING",
- "job": { },
- "user_profile": { }
}
Response samples
- 200
{- "required": true,
- "state": "PENDING",
- "job": {
- "id": 0,
- "name": "string",
- "app": "string",
- "cost": "string",
- "submitted_by": "string",
- "submitted_at": "string"
}, - "user_profile": {
- "display_name": "string"
}, - "permissions": "string"
}
jobrefresh_create
Create a request to refresh the logs for a running job step with ID {job_step}.
Authorizations:
Request Body schema: application/json
job_step required | integer (Job step) The ID of the running job step to refresh |
response_recieved | boolean (Response recieved) Has the refresh completed? |
Responses
Response Schema: application/json
id | integer (ID) The ID for this refresh request |
job_step required | integer (Job step) The ID of the running job step to refresh |
response_recieved | boolean (Response recieved) Has the refresh completed? |
Request samples
- Payload
- curl
- python
{- "job_step": 0,
- "response_recieved": true
}
Response samples
- 201
{- "id": 0,
- "job_step": 0,
- "response_recieved": true
}
jobrefresh_read
Check the progress of a refresh request
Authorizations:
path Parameters
id required | integer A unique integer value identifying this jobstep response request. |
Responses
Response Schema: application/json
id | integer (ID) The ID for this refresh request |
job_step required | integer (Job step) The ID of the running job step to refresh |
response_recieved | boolean (Response recieved) Has the refresh completed? |
Request samples
- curl
- python
curl -X GET \ --header "Authorization:Bearer api_key" \ 'http://epic.zenotech.com/api/v2/jobrefresh/%7Bid%7D/'
Response samples
- 200
{- "id": 0,
- "job_step": 0,
- "response_recieved": true
}
jobstep_list
List all the job steps you have read permission for
Authorizations:
query Parameters
parent_job | string parent_job |
limit | integer Number of results to return per page. |
offset | integer The initial index from which to return the results. |
Responses
Response Schema: application/json
count required | integer |
next | string or null <uri> |
previous | string or null <uri> |
required | Array of objects (JobStep) |
Request samples
- curl
- python
curl -X GET \ --header "Authorization:Bearer api_key" \ 'http://epic.zenotech.com/api/v2/jobstep/'
Response samples
- 200
{- "count": 0,
- "results": [
- {
- "id": 0,
- "parent_job": 0,
- "run_if_previous_step_fails": true,
- "step_name": "string",
- "node_count": 1,
- "num_tasks": 1,
- "tasks_per_node": 1,
- "threads_per_task": 1,
- "max_runtime": 1,
- "status": "string",
- "exit_code": -2147483648,
- "start": "2019-08-24T14:15:22Z",
- "end": "2019-08-24T14:15:22Z",
- "wallclock": "string",
- "local_job_id": -2147483648
}
]
}
jobstep_read
See the details for the job step with ID {id}
Authorizations:
path Parameters
id required | string |
Responses
Response Schema: application/json
id | integer (ID) jobstep id |
parent_job | integer (Parent job) The id of the parent job for this step |
run_if_previous_step_fails | boolean (Run if previous step fails) Whether this job step will run if the previous step fails |
step_name required | string (Step name) [ 1 .. 30 ] characters The name of this job step |
node_count | integer (Node count) [ 1 .. 2147483647 ] Number of nodes this job step will run on |
num_tasks | integer (Num tasks) [ 1 .. 2147483647 ] Number of tasks that will run for this job step |
tasks_per_node | integer (Tasks per node) [ 1 .. 2147483647 ] Number of tasks that will run on each node |
threads_per_task | integer (Threads per task) [ 1 .. 2147483647 ] Number of threads assigned to each task |
max_runtime | integer (Max runtime) [ 1 .. 2147483647 ] Maximum runtime in hours that this job step will run for |
status | string or null (Status) <= 50 characters Status of this jobstep |
exit_code | integer or null (Exit code) [ -2147483648 .. 2147483647 ] Unix exit code for this job step |
start | string or null <date-time> (Start) Time this job step started running |
end | string or null <date-time> (End) Time this job step finished running |
wallclock | string or null (Wallclock) |
object (JobLog) The step logs |
Request samples
- curl
- python
curl -X GET \ --header "Authorization:Bearer api_key" \ 'http://epic.zenotech.com/api/v2/jobstep/%7Bid%7D/'
Response samples
- 200
{- "id": 0,
- "parent_job": 0,
- "run_if_previous_step_fails": true,
- "step_name": "string",
- "node_count": 1,
- "num_tasks": 1,
- "tasks_per_node": 1,
- "threads_per_task": 1,
- "max_runtime": 1,
- "status": "string",
- "exit_code": -2147483648,
- "start": "2019-08-24T14:15:22Z",
- "end": "2019-08-24T14:15:22Z",
- "wallclock": "string",
- "logs": {
- "stdout": "string",
- "stderr": "string",
- "app": "string",
- "last_update": "string"
}
}
jobstep_logs_read
Get the logs for the job step with ID {id}
Authorizations:
path Parameters
id required | string |
Responses
Response Schema: application/json
stdout | string (Stdout) |
stderr | string (Stderr) |
app | string (App) |
last_update | string (Last update) Last time the logs were updated |
Request samples
- curl
- python
curl -X GET \ --header "Authorization:Bearer api_key" \ 'http://epic.zenotech.com/api/v2/jobstep/%7Bid%7D/logs/'
Response samples
- 200
{- "stdout": "string",
- "stderr": "string",
- "app": "string",
- "last_update": "string"
}
licenses_list
Authorizations:
query Parameters
limit | integer Number of results to return per page. |
offset | integer The initial index from which to return the results. |
Responses
Response Schema: application/json
count required | integer |
next | string or null <uri> |
previous | string or null <uri> |
required | Array of objects (License) |
Request samples
- curl
- python
curl -X GET \ --header "Authorization:Bearer api_key" \ 'http://epic.zenotech.com/api/v2/licenses/'
Response samples
- 200
{- "count": 0,
- "results": [
- {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "active": true,
- "display_name": "string",
- "description": "string",
- "environment": [
- {
- "variable_name": "string",
- "value": "string"
}
], - "application": {
- "pk": 0,
- "name": "string"
}
}
]
}
licenses_create
Authorizations:
Request Body schema: application/json
display_name required | string (Display name) [ 1 .. 30 ] characters |
description | string (Description) non-empty |
required | Array of objects (EnvVar) |
application | integer or null (Application) |
Responses
Response Schema: application/json
id | string <uuid> (Id) |
display_name required | string (Display name) [ 1 .. 30 ] characters |
description | string (Description) non-empty |
required | Array of objects (EnvVar) |
application | integer or null (Application) |
Request samples
- Payload
- curl
- python
{- "display_name": "string",
- "description": "string",
- "environment": [
- {
- "variable_name": "string",
- "value": "string"
}
], - "application": 0
}
Response samples
- 201
{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "display_name": "string",
- "description": "string",
- "environment": [
- {
- "variable_name": "string",
- "value": "string"
}
], - "application": 0
}
licenses_templates
Authorizations:
query Parameters
limit | integer Number of results to return per page. |
offset | integer The initial index from which to return the results. |
Responses
Response Schema: application/json
id | string <uuid> (Id) |
object (Application) | |
Array of objects (EnvVarTemplate) |
Request samples
- curl
- python
curl -X GET \ --header "Authorization:Bearer api_key" \ 'http://epic.zenotech.com/api/v2/licenses/templates/'
Response samples
- 200
{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "application": {
- "pk": 0,
- "name": "string"
}, - "environment": [
- {
- "variable_name": "string",
- "help_text": "string",
- "var_type": "string",
- "default": "string"
}
]
}
licenses_read
Authorizations:
path Parameters
id required | string |
Responses
Response Schema: application/json
id | string <uuid> (Id) |
active | boolean (Active) |
display_name required | string (Display name) [ 1 .. 30 ] characters |
description | string (Description) non-empty |
Array of objects (EnvVar) | |
object (Application) |
Request samples
- curl
- python
curl -X GET \ --header "Authorization:Bearer api_key" \ 'http://epic.zenotech.com/api/v2/licenses/%7Bid%7D/'
Response samples
- 200
{- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "active": true,
- "display_name": "string",
- "description": "string",
- "environment": [
- {
- "variable_name": "string",
- "value": "string"
}
], - "application": {
- "pk": 0,
- "name": "string"
}
}
profile_settings_list
Return details about the settings for the users billing profile
Authorizations:
Responses
Response Schema: application/json
id | integer (ID) |
display_currency | string (Display currency) Enum: "GBP" "EUR" "USD" |
display_currency_symbol | string (Display currency symbol) |
Request samples
- curl
- python
curl -X GET \ --header "Authorization:Bearer api_key" \ 'http://epic.zenotech.com/api/v2/profile/settings/'
Response samples
- 200
{- "id": 0,
- "display_currency": "GBP",
- "display_currency_symbol": "string"
}
projects_list
List the projects you have access to
Authorizations:
query Parameters
name | string name |
limit | integer Number of results to return per page. |
offset | integer The initial index from which to return the results. |
Responses
Response Schema: application/json
count required | integer |
next | string or null <uri> |
previous | string or null <uri> |
required | Array of objects (Project) |
Request samples
- curl
- python
curl -X GET \ --header "Authorization:Bearer api_key" \ 'http://epic.zenotech.com/api/v2/projects/'
Response samples
- 200
{- "count": 0,
- "results": [
- {
- "pk": 0,
- "project_id": "string",
- "description": "string",
- "closed": true
}
]
}
projects_read
See the details for a project.
Authorizations:
path Parameters
id required | string |
Responses
Response Schema: application/json
pk | integer (ID) |
project_id | string (Project id) non-empty |
description | string or null (Description) |
closed | boolean (Closed) |
all_users | boolean (All users) |
authorized_user_profiles | Array of integers unique |
has_budget | boolean (Has budget) |
object <decimal> (Spend limit) Maximum monthly spend limit for this project code. | |
object <decimal> (Current spend) Current monthly spend for this project code. |
Request samples
- curl
- python
curl -X GET \ --header "Authorization:Bearer api_key" \ 'http://epic.zenotech.com/api/v2/projects/%7Bid%7D/'
Response samples
- 200
{- "pk": 0,
- "project_id": "string",
- "description": "string",
- "closed": true,
- "all_users": true,
- "authorized_user_profiles": [
- 0
], - "has_budget": true,
- "spend_limit": {
- "amount": 0,
- "currency": "string",
- "currency_symbol": "string"
}, - "current_spend": {
- "amount": 0,
- "currency": "string",
- "currency_symbol": "string"
}
}
projects_partial_update
Update the project description or open/close a project.
Authorizations:
path Parameters
id required | string |
Request Body schema: application/json
description | string or null (Description) |
closed | boolean (Closed) |
Responses
Response Schema: application/json
pk | integer (ID) |
project_id | string (Project id) non-empty |
description | string or null (Description) |
closed | boolean (Closed) |
Request samples
- Payload
- curl
- python
{- "description": "string",
- "closed": true
}
Response samples
- 200
{- "pk": 0,
- "project_id": "string",
- "description": "string",
- "closed": true
}
teams_list
List the teams you are a member of.
Authorizations:
query Parameters
name | string name |
role | string Enum: "user" "admin" "owner" Team role |
limit | integer Number of results to return per page. |
offset | integer The initial index from which to return the results. |
Responses
Response Schema: application/json
count required | integer |
next | string or null <uri> |
previous | string or null <uri> |
required | Array of objects or null (Team) |
Request samples
- curl
- python
curl -X GET \ --header "Authorization:Bearer api_key" \ 'http://epic.zenotech.com/api/v2/teams/'
Response samples
- 200
{- "count": 0,
- "results": [
- {
- "id": 0,
- "name": "string",
- "number_of_members": 0,
- "user_role": "string"
}
]
}
teams_read
See the details for a team. You must be a member of the team to see the details.
Authorizations:
path Parameters
id required | string |
Responses
Response Schema: application/json
id | integer (ID) ID for this team |
name | string (Name) non-empty Name of this team |
number_of_members | integer (Number of members) Number of members in this team |
user_role | string (User role) Your role in this team |
members | string (Members) List of user ids and roles for members of this team |
Request samples
- curl
- python
curl -X GET \ --header "Authorization:Bearer api_key" \ 'http://epic.zenotech.com/api/v2/teams/%7Bid%7D/'
Response samples
- 200
{- "id": 0,
- "name": "string",
- "number_of_members": 0,
- "user_role": "string",
- "members": "string"
}