University of Texas at Austin Scheduler Profiles API

The Systems service supports managing Tapis scheduler profiles. An HPC center often has certain conventions and restrictions around the use of batch schedulers. A scheduler profile resource can be defined to provide the Tapis Jobs service with additional site specific information to be used when executing applications using a scheduler. A scheduler profile contains information on options that should be hidden from the scheduler, the module load command to use and which modules should be loaded by default when running a job. Anyone in a tenant may create a scheduler profile for use by all users in the tenant. The owner of a profile or a tenant administrator may modify or delete a profile. A profile may referenced in a system definition using the attribute *batchSchedulerProfile*. The profile to be used may also be set in the job submit request using the special scheduler option *--tapis-profile*. The value in the job submit request takes precedence over any value defined for the execution system.

Operations 4

GET /v3/systems/schedulerProfile Get scheduler profiles #
POST /v3/systems/schedulerProfile Create scheduler profile #
GET /v3/systems/schedulerProfile/{name} Get scheduler profile #
DELETE /v3/systems/schedulerProfile/{name} Delete scheduler profile #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/university-of-texas-at-austin-scheduler-profiles-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

university-of-texas-at-austin-scheduler-profiles-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Tapis Systems Scheduler Profiles API
  description: The Tapis Systems API provides for management of Tapis Systems including permissions, credentials and Scheduler Profiles.
  version: 26Q2.0
  termsOfService: https://tapis-project.org
  contact:
    name: Systems API - CICSupport
    url: https://tapis-project.org
    email: cicsupport@tacc.utexas.edu
  license:
    name: 3-Clause BSD License
    url: https://opensource.org/licenses/BSD-3-Clause
servers:
- url: http://localhost:8080/
  description: Local test environment
  variables: {}
- url: https://dev.develop.tapis.io/
  description: Development environment
  variables: {}
tags:
- name: Scheduler Profiles
  description: The Systems service supports managing Tapis scheduler profiles.
paths:
  /v3/systems/schedulerProfile:
    get:
      tags:
      - Scheduler Profiles
      description: Retrieve list of scheduler profiles.
      operationId: getSchedulerProfiles
      security:
      - TapisJWT: []
      responses:
        '200':
          description: Success.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RespSchedulerProfiles'
        '400':
          description: Input error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RespBasic'
        '403':
          description: Permission denied.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RespBasic'
        '500':
          description: Server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RespBasic'
      summary: Get scheduler profiles
      x-summary-source: derived
    post:
      tags:
      - Scheduler Profiles
      description: 'Create a scheduler profile using a request body. Name must be unique within a tenant and can be composed of

        alphanumeric characters and the following special characters [-._~].

        Name must begin with an alphabetic character and can be no more than 80 characters in length.

        Description is optional with a maximum length of 2048 characters.


        Note that certain attributes (such as *tenant*) are allowed but ignored so that the JSON result returned by a GET

        may be modified and used when making a POST request to create a profile.

        The attributes that are allowed but ignored are


        - tenant

        - uuid

        - created

        - updated'
      operationId: createSchedulerProfile
      security:
      - TapisJWT: []
      requestBody:
        required: true
        description: A JSON object specifying information for the profile to be created.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ReqPostSchedulerProfile'
      responses:
        '201':
          description: Scheduler profile created.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RespResourceUrl'
        '400':
          description: Input error. Invalid JSON.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RespBasic'
        '403':
          description: Permission denied.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RespBasic'
        '409':
          description: Scheduler profile already exists.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RespResourceUrl'
        '500':
          description: Server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RespBasic'
      summary: Create scheduler profile
      x-summary-source: derived
  /v3/systems/schedulerProfile/{name}:
    get:
      tags:
      - Scheduler Profiles
      description: Retrieve information for a scheduler profile given the profile name.
      operationId: getSchedulerProfile
      security:
      - TapisJWT: []
      parameters:
      - name: name
        in: path
        required: true
        schema:
          $ref: '#/components/schemas/IdString'
      responses:
        '200':
          description: Success.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RespSchedulerProfile'
        '400':
          description: Input error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RespBasic'
        '403':
          description: Permission denied.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RespBasic'
        '404':
          description: Scheduler profile not found.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RespBasic'
        '500':
          description: Server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RespBasic'
      summary: Get scheduler profile
      x-summary-source: derived
    delete:
      tags:
      - Scheduler Profiles
      description: Remove a scheduler profile given the profile name. Requester must be owner of the profile.
      operationId: deleteSchedulerProfile
      security:
      - TapisJWT: []
      parameters:
      - name: name
        in: path
        required: true
        schema:
          $ref: '#/components/schemas/IdString'
      responses:
        '200':
          description: Scheduler profile deleted.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RespChangeCount'
        '400':
          description: Input error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RespBasic'
        '403':
          description: Permission denied.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RespBasic'
        '500':
          description: Server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RespBasic'
      summary: Delete scheduler profile
      x-summary-source: derived
components:
  schemas:
    IdString:
      type: string
      minLength: 1
      maxLength: 80
    ResultChangeCount:
      type: object
      properties:
        changes:
          type: integer
          format: int32
    RespSchedulerProfiles:
      type: object
      properties:
        status:
          type: string
        message:
          type: string
        version:
          type: string
        commit:
          type: string
        build:
          type: string
        result:
          type: array
          items:
            $ref: '#/components/schemas/SchedulerProfile'
        metadata:
          type: object
    ResultResourceUrl:
      type: object
      properties:
        url:
          type: string
    ReqPostSchedulerProfile:
      type: object
      required:
      - name
      properties:
        name:
          $ref: '#/components/schemas/IdString'
        description:
          $ref: '#/components/schemas/DescriptionString'
        owner:
          type: string
        moduleLoads:
          type: array
          items:
            $ref: '#/components/schemas/ModuleLoadSpec'
        hiddenOptions:
          type: array
          items:
            $ref: '#/components/schemas/SchedulerHiddenOptionEnum'
    DescriptionString:
      type: string
      maxLength: 2048
      description: Optional more verbose description.
    ModuleLoadSpec:
      type: object
      required:
      - moduleLoadCommand
      properties:
        moduleLoadCommand:
          type: string
          minLength: 1
        modulesToLoad:
          type: array
          items:
            type: string
            minLength: 1
    RespResourceUrl:
      type: object
      properties:
        status:
          type: string
        message:
          type: string
        version:
          type: string
        commit:
          type: string
        build:
          type: string
        result:
          $ref: '#/components/schemas/ResultResourceUrl'
        metadata:
          type: object
    SchedulerProfile:
      type: object
      required:
      - name
      properties:
        tenant:
          type: string
        name:
          $ref: '#/components/schemas/IdString'
        description:
          $ref: '#/components/schemas/DescriptionString'
        owner:
          $ref: '#/components/schemas/UserNameApiDefaultString'
        moduleLoads:
          type: array
          items:
            $ref: '#/components/schemas/ModuleLoadSpec'
        hiddenOptions:
          type: array
          items:
            $ref: '#/components/schemas/SchedulerHiddenOptionEnum'
    RespChangeCount:
      type: object
      properties:
        status:
          type: string
        message:
          type: string
        version:
          type: string
        commit:
          type: string
        build:
          type: string
        result:
          $ref: '#/components/schemas/ResultChangeCount'
        metadata:
          type: object
    RespBasic:
      type: object
      properties:
        status:
          type: string
        message:
          type: string
        version:
          type: string
        commit:
          type: string
        build:
          type: string
        result:
          type: object
        metadata:
          type: object
    RespSchedulerProfile:
      type: object
      properties:
        status:
          type: string
        message:
          type: string
        version:
          type: string
        commit:
          type: string
        build:
          type: string
        result:
          $ref: '#/components/schemas/SchedulerProfile'
        metadata:
          type: object
    SchedulerHiddenOptionEnum:
      type: string
      enum:
      - MEM
      - PARTITION
    UserNameApiDefaultString:
      type: string
      minLength: 1
      maxLength: 60
      default: ${apiUserId}
  securitySchemes:
    TapisJWT:
      type: apiKey
      description: Tapis signed JWT token authentication
      name: X-Tapis-Token
      in: header
externalDocs:
  description: Tapis Project
  url: https://tapis-project.org