University of Illinois Urbana-Champaign System API
System APIs.
Documentation
Documentation
https://api.rokwire.illinois.edu/core/doc/ui/
Documentation
https://api.rokwire.illinois.edu/gateway/doc/ui/
System APIs.
openapi: 3.0.3
info:
title: Rokwire Core Building Block Admin System API
description: Core Building Block API Documentation
version: 1.62.0
servers:
- url: https://api.rokwire.illinois.edu/core
tags:
- name: System
description: System APIs.
paths:
/system/auth/app-org-token:
get:
tags:
- System
summary: App org token
description: 'Retrieve a system token for the specified application and organization
**Auth:** Requires system access token
'
security:
- bearerAuth: []
parameters:
- name: app_id
in: query
description: The application ID of the token to return
required: true
style: form
explode: false
schema:
type: string
- name: org_id
in: query
description: The organization ID of the token to return
required: true
style: form
explode: false
schema:
type: string
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/AdminToken'
'400':
description: Bad request
'401':
description: Unauthorized
'500':
description: Internal error
/system/organizations/{id}:
get:
tags:
- System
summary: Get organization by ID
description: 'Gets organization by ID
**Auth:** Requires system access token with `get_organizations`, `update_organizations`, or `all_organizations` permission
'
security:
- bearerAuth: []
parameters:
- name: id
in: path
description: ID of the organization
required: true
style: simple
explode: false
schema:
type: string
responses:
'200':
description: successful operation
content:
application/json:
schema:
$ref: '#/components/schemas/Organization'
'400':
description: Bad request
'401':
description: Unauthorized
'404':
description: Not Found
'500':
description: Internal error
put:
tags:
- System
summary: Update organization by ID
description: 'Updates organization by ID
**Auth:** Requires system access token with `update_organizations` or `all_organizations` permission
'
security:
- bearerAuth: []
parameters:
- name: id
in: path
description: ID of the organization that needs to be updated
required: true
style: simple
explode: false
schema:
type: string
requestBody:
description: update one organization
content:
application/json:
schema:
$ref: '#/components/schemas/Organization'
required: true
responses:
'200':
description: Success
content:
text/plain:
schema:
type: string
example: Success
'400':
description: Bad request
'401':
description: Unauthorized
'500':
description: Internal error
/system/organizations:
get:
tags:
- System
summary: Get organizations
description: 'Gets organizations
**Auth:** Requires system access token with `get_organizations`, `update_organizations`, or `all_organizations` permission
'
security:
- bearerAuth: []
responses:
'200':
description: Successful operation
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/Organization'
'400':
description: Bad request
'401':
description: Unauthorized
'500':
description: Internal error
post:
tags:
- System
summary: Create organization
description: 'Creates organization
**Auth:** Requires system access token with `update_organizations` or `all_organizations` permission
'
security:
- bearerAuth: []
requestBody:
description: creates one organization
content:
application/json:
schema:
$ref: '#/components/schemas/Organization'
required: true
responses:
'200':
description: Success
content:
text/plain:
schema:
type: string
example: Success
'400':
description: Bad request
'401':
description: Unauthorized
'500':
description: Internal error
/system/service-regs:
get:
tags:
- System
summary: Get service registrations
description: 'Returns service registration records
**Auth:** Requires system access token with `get_service-regs`, `update_service-regs`, `delete_service-regs`, or `all_service-regs` permission
'
security:
- bearerAuth: []
parameters:
- name: ids
in: query
description: A comma-separated list of service IDs to return registrations for
required: true
style: form
explode: false
schema:
type: string
responses:
'200':
description: Success
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/ServiceReg'
'400':
description: Bad request
'401':
description: Unauthorized
'500':
description: Internal error
post:
tags:
- System
summary: Register service
description: "Creates a new service registration\n\nThe \"service_id\" of the registration must not match an existing registration \n\n**Auth:** Requires system access token with `update_service-regs` or `all_service-regs` permission\n"
security:
- bearerAuth: []
requestBody:
description: service registration record to be added
content:
application/json:
schema:
$ref: '#/components/schemas/ServiceReg'
required: true
responses:
'200':
description: Success
content:
text/plain:
schema:
type: string
example: Success
'400':
description: Bad request
'401':
description: Unauthorized
'500':
description: Internal error
put:
tags:
- System
summary: Update service registration
description: 'Update an existing service registration
The "service_id" of the registration must match an existing registration
**Auth:** Requires system access token with `update_service-regs` or `all_service-regs` permission
'
security:
- bearerAuth: []
requestBody:
description: Service registration record update to be applied
content:
application/json:
schema:
$ref: '#/components/schemas/ServiceReg'
required: true
responses:
'200':
description: Success
content:
text/plain:
schema:
type: string
example: Success
'400':
description: Bad request
'401':
description: Unauthorized
'500':
description: Internal error
delete:
tags:
- System
summary: Deregister service
description: 'Deletes an existing service registration record
**Auth:** Requires system access token with `delete_service-regs` or `all_service-regs` permission
'
security:
- bearerAuth: []
parameters:
- name: id
in: query
description: The service ID of the registration to delete
required: true
style: form
explode: false
schema:
type: string
responses:
'200':
description: Success
content:
text/plain:
schema:
type: string
example: Success
'400':
description: Bad request
'401':
description: Unauthorized
'500':
description: Internal error
/system/service-accounts/{id}:
get:
tags:
- System
summary: Get service account instance
description: 'Get service account instance by account ID, app ID, and org ID
**Auth:** Requires system access token with `get_service-accounts`, `update_service-accounts`, `delete_service-accounts`, or `all_service-accounts` permission
'
security:
- bearerAuth: []
parameters:
- name: id
in: path
description: ID of the service account
required: true
style: simple
explode: false
schema:
type: string
- name: app_id
in: query
description: Application ID of the service account instance
required: true
style: form
explode: false
schema:
type: string
- name: org_id
in: query
description: Organization ID of the service account instance
required: true
style: form
explode: false
schema:
type: string
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/ServiceAccount'
'400':
description: Bad request
'401':
description: Unauthorized
'500':
description: Internal error
put:
tags:
- System
summary: Update service account instance
description: 'Updates a service account instance
**Auth:** Requires system access token with `update_service-accounts` or `all_service-accounts` permission
'
security:
- bearerAuth: []
parameters:
- name: id
in: path
description: ID of the service account instance
required: true
style: simple
explode: false
schema:
type: string
- name: app_id
in: query
description: Application ID of the service account instance
required: true
style: form
explode: false
schema:
type: string
- name: org_id
in: query
description: Organization ID of the service account instance
required: true
style: form
explode: false
schema:
type: string
requestBody:
description: 'Service account
'
content:
application/json:
schema:
$ref: '#/components/schemas/_system_req_update_service-account'
examples:
update_account:
summary: Update service account
value:
name: updated_name
permissions:
- permission1
- new_permission1
scopes:
- core:resource.value:get
- core:resource.value2.get
required: true
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/ServiceAccount'
'400':
description: Bad request
'401':
description: Unauthorized
'500':
description: Internal error
delete:
tags:
- System
summary: Deregister service account instance
description: 'Removes a service account instance
**Auth:** Requires system access token with `delete_service-accounts` or `all_service-accounts` permission
'
security:
- bearerAuth: []
parameters:
- name: id
in: path
description: ID of the service account instance to delete
required: true
style: simple
explode: false
schema:
type: string
- name: app_id
in: query
description: Application ID of the service account instance
required: true
style: form
explode: false
schema:
type: string
- name: org_id
in: query
description: Organization ID of the service account instance
required: true
style: form
explode: false
schema:
type: string
responses:
'200':
description: Success
'400':
description: Bad request
'401':
description: Unauthorized
'500':
description: Internal error
/system/service-accounts:
get:
tags:
- System
summary: Get service accounts
description: 'Get list of all service accounts matching a search
**Auth:** Requires system access token with `get_service-accounts`, `update_service-accounts`, `delete_service-accounts`, or `all_service-accounts` permission
'
security:
- bearerAuth: []
parameters:
- name: account_id
in: query
description: Service account ID to search for
required: false
style: form
explode: false
schema:
type: string
- name: name
in: query
description: Service account name to search for
required: false
style: form
explode: false
schema:
type: string
- name: app_id
in: query
description: Service account app ID to search for
required: false
style: form
explode: false
schema:
type: string
- name: org_id
in: query
description: Service account org ID to search for
required: false
style: form
explode: false
schema:
type: string
- name: permissions
in: query
description: A comma-separated list of service account permissions to search for
required: false
style: form
explode: false
schema:
type: string
- name: scopes
in: query
description: A comma-separated list of service account scopes to search for
required: false
style: form
explode: false
schema:
type: string
responses:
'200':
description: Success
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/ServiceAccount'
'400':
description: Bad request
'401':
description: Unauthorized
'500':
description: Internal error
post:
tags:
- System
summary: Register service account
description: 'Creates a new service account
**Auth:** Requires system access token with `update_service-accounts` or `all_service-accounts` permission
'
security:
- bearerAuth: []
parameters:
- name: app_id
in: query
description: Service account app ID to copy from
required: false
style: form
explode: false
schema:
type: string
- name: org_id
in: query
description: Service account org ID to copy from
required: false
style: form
explode: false
schema:
type: string
requestBody:
description: 'Service account
'
content:
application/json:
schema:
$ref: '#/components/schemas/ServiceAccount'
examples:
initial_creds:
summary: Register new account with initial credentials
value:
name: test_account
app_id: '9766'
org_id: 0a2eff20-e2cd-11eb-af68-60f81db5ecc0
permissions:
- permission1
- permission2
scopes:
- core:resource.value:get
- core:resource.value2.get
first_party: true
creds:
- name: initial_token
type: static_token
- name: initial_signature
type: signature
params:
key_pem: public_key_pem
no_initial_creds:
summary: Register new account without initial credentials
value:
name: test_account
app_id: '9766'
org_id: 0a2eff20-e2cd-11eb-af68-60f81db5ecc0
permissions:
- permission1
- permission2
scopes:
- core:resource.value:get
- core:resource.value2.get
first_party: true
copy_from:
summary: Register new account instance by copying from existing account instance
value:
account_id: 12345678-e2cd-11eb-af68-60f81db5ecc0
app_id: '9766'
org_id: 0a2eff20-e2cd-11eb-af68-60f81db5ecc0
permissions:
- permission1
- permission2
scopes:
- core:resource.value:get
- core:resource.value2.get
required: true
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/ServiceAccount'
'400':
description: Bad request
'401':
description: Unauthorized
'500':
description: Internal error
delete:
tags:
- System
summary: Delete service accounts
description: 'Delete service accounts matching an account ID
**Auth:** Requires system access token with `delete_service-accounts` or `all_service-accounts` permission
'
security:
- bearerAuth: []
parameters:
- name: account_id
in: query
description: Service account ID to delete
required: true
style: form
explode: false
schema:
type: string
responses:
'200':
description: Success
'400':
description: Bad request
'401':
description: Unauthorized
'500':
description: Internal error
/system/service-accounts/{id}/creds:
post:
tags:
- System
summary: Add service account credential
description: 'Adds a new credential to an existing service account
**Auth:** Requires system access token with `update_service-accounts` or `all_service-accounts` permission
'
security:
- bearerAuth: []
parameters:
- name: id
in: path
description: ID of the service account to add new credential
required: true
style: simple
explode: false
schema:
type: string
requestBody:
description: 'Service account credentials
'
content:
application/json:
schema:
$ref: '#/components/schemas/ServiceAccountCredential'
examples:
static_token:
summary: Add static token credential
value:
name: token_cred
type: static_token
signature:
summary: Add signature credential
value:
name: signature_cred
type: signature
params:
key_pem: public_key_pem
alg: PS256
required: true
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/ServiceAccountCredential'
'400':
description: Bad request
'401':
description: Unauthorized
'500':
description: Internal error
delete:
tags:
- System
summary: Remove service account credential
description: 'Removes a credential from an existing service account
**Auth:** Requires system access token with `delete_service-accounts` or `all_service-accounts` permission
'
security:
- bearerAuth: []
parameters:
- name: id
in: path
description: ID of the service account to remove credential
required: true
style: simple
explode: false
schema:
type: string
- name: cred_id
in: query
description: id of the credential to be removed
required: true
style: form
explode: false
schema:
type: string
responses:
'200':
description: Success
'400':
description: Bad request
'401':
description: Unauthorized
'500':
description: Internal error
/system/applications/{id}:
get:
tags:
- System
summary: Get application by ID
description: 'Gets application by provided ID
**Auth:** Requires system access token with `get_applications` or `all_applications` permission
'
security:
- bearerAuth: []
parameters:
- name: id
in: path
description: ID of the application
required: true
style: simple
explode: false
schema:
type: string
responses:
'200':
description: successful operation
content:
application/json:
schema:
$ref: '#/components/schemas/Application'
'400':
description: Bad request
'401':
description: Unauthorized
'404':
description: Not Found
'500':
description: Internal error
put:
tags:
- System
summary: Update application by ID
description: 'Updates application by provided ID
**Auth:** Requires system access token with `update_applications` or `all_applications` permission
'
security:
- bearerAuth: []
parameters:
- name: id
in: path
description: ID of the application
required: true
style: simple
explode: false
schema:
type: string
requestBody:
description: updates one application
content:
application/json:
schema:
$ref: '#/components/schemas/Application'
required: true
responses:
'200':
description: successful operation
content:
text/plain:
schema:
type: string
example: Success
'400':
description: Bad request
'401':
description: Unauthorized
'404':
description: Not Found
'500':
description: Internal error
/system/applications:
get:
tags:
- System
summary: Get applications
description: 'Gets applications
**Auth:** Requires system access token with `get_applications`, `udpate_applications`, or `all_applications` permission
'
security:
- bearerAuth: []
responses:
'200':
description: Successful operation
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/Application'
'400':
description: Bad request
'401':
description: Unauthorized
'500':
description: Internal error
post:
tags:
- System
summary: Create application
description: 'Creates application
**Auth:** Requires system access token with `update_applications` or `all_applications` permission
'
security:
- bearerAuth: []
requestBody:
description: creates one application
content:
application/json:
schema:
$ref: '#/components/schemas/Application'
required: true
responses:
'200':
description: Success
content:
text/plain:
schema:
type: string
example: Success
'400':
description: Bad request
'401':
description: Unauthorized
'500':
description: Internal error
/system/permissions:
post:
tags:
- System
summary: Create permission
description: 'Creates permission
**Auth:** Requires system access token with `update_permissions` or `all_permissions` permission
'
security:
- bearerAuth: []
requestBody:
description: Permission
content:
application/json:
schema:
$ref: '#/components/schemas/Permission'
required: true
responses:
'200':
description: Success
content:
text/plain:
schema:
type: string
example: Success
'400':
description: Bad request
'401':
description: Unauthorized
'500':
description: Internal error
put:
tags:
- System
summary: Updates permission
description: 'Updates permission
**Auth:** Requires system access token with `update_permissions` or `all_permissions` permission
'
security:
- bearerAuth: []
requestBody:
description: Permission
content:
application/json:
schema:
$ref: '#/components/schemas/Permission'
required: true
responses:
'200':
description: Success
content:
text/plain:
schema:
type: string
example: Success
'400':
description: Bad request
'401':
description: Unauthorized
'500':
description: Internal error
/system/api-keys:
get:
tags:
- System
summary: Get API key
description: 'Returns API key records for given ID or app ID
**Auth:** Requires system access token with `get_api-keys`, `update_api-keys`, `delete_api-keys`, or `all_api-keys` permission
'
security:
- bearerAuth: []
parameters:
- name: id
in: query
description: The ID of the API key to return. Required if `app_id` is not provided.
required: false
style: form
explode: false
schema:
type: string
- name: app_id
in: query
description: The app ID of the API keys to return. Required if `id` is not provided.
required: false
style: form
explode: false
schema:
type: string
responses:
'200':
description: Success
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/APIKey'
'400':
description: Bad request
'401':
description: Unauthorized
'500':
description: Internal error
post:
tags:
- System
summary: Create API key
description: 'Creates a new API key record
**Auth:** Requires system access token with `update_api-keys` or `all_api-keys` permission
'
security:
- bearerAuth: []
requestBody:
description: API key record to be added
content:
application/json:
schema:
$ref: '#/components/schemas/APIKey'
example:
app_id: string
key: string
required: true
responses:
'200':
description: Success
content:
text/plain:
schema:
type: string
example: Success
'400':
description: Bad request
'401':
description: Unauthorized
'500':
description: Internal error
put:
tags:
- System
summary: Update API key
description: 'Update an existing API key record
Must include the "id" field to identify which key is to be udpated
**Auth:** Requires system access token with `update_api-keys` or `all_api-keys` permission
'
security:
- bearerAuth: []
requestBody:
description: API key record update to be applied
content:
application/json:
schema:
$ref: '#/components/schemas/APIKey'
required: true
responses:
'200':
description: Success
content:
text/plain:
schema:
type: string
example: Success
'400':
description: Bad request
'401':
description: Unauthorized
'500':
description: Internal error
delete:
tags:
- System
summary: Delete API key
description: 'Deletes an existing API key record
**Auth:** Requires system access token with `delete_api-keys` or `all_api-keys` permission
'
security:
- bearerAuth: []
parameters:
- name: id
in: query
description: The ID of the API key to delete
required: true
style: form
explode: false
schema:
type: string
responses:
'200':
description: Success
content:
text/plain:
schema:
type: string
example: Success
'400':
description: Bad request
'401':
description: Unauthorized
'500':
description: Internal error
/system/auth-types:
get:
tags:
- System
summary: Get auth types
description: 'Gets auth types
**Auth:** Requires system access token with `get_auth-types`, `update_auth-types`, or `all_auth-types` permission
'
security:
- bearerAuth: []
responses:
'200':
description: Successful operation
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/AuthType'
'400':
description: Bad request
'401':
description: Unauthorized
'500':
description: Internal error
post:
tags:
- System
summary: Create auth type
description: 'Creates auth type
**Auth:** Requires system access token with `update_auth-types` or `all_auth-types` permission
'
security:
- bearerAuth: []
requestBody:
description: creates one auth-type
content:
application/json:
schema:
$ref: '#/components/schemas/AuthType'
required: true
responses:
'200':
description: Success
content:
text/plain:
schema:
type: string
example: Success
'400':
description: Bad request
'401':
description: Unauthorized
'500':
description: Internal error
/system/auth-types/{id}:
put:
tags:
- System
summary: Update auth type by ID
description: 'Updates auth type with the provided ID
**Auth:** Requires system access token with `update_auth-types` or `all_auth-types` permission
'
security:
- bearerAuth: []
parameters:
- name: id
in: path
description: ID of the auth type that needs to be updated
required: true
schema:
type: string
requestBody:
description: update one auth type
c
# --- truncated at 32 KB (47 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/university-of-illinois-urbana-champaign/refs/heads/main/openapi/university-of-illinois-urbana-champaign-system-api-openapi.yml