University of Illinois Urbana-Champaign System API

System APIs.

OpenAPI Specification

university-of-illinois-urbana-champaign-system-api-openapi.yml Raw ↑
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