UCLA Classes API

All classes offered in a selected UCLA term - title, description, notes, final exam details, and class sections with meeting times, locations, enrolment counts, units and instructors. Six read operations tagged Classes and Class Sections, including a dedicated route for UCLA Extension. Keyed on UCLA's own three-character offeredTermCode. Contract is Swagger 2.0, published by UCLA on its own portal and describing routes on UCLA's own gateway.

OpenAPI Specification

ucla-sis-classes-openapi.yml Raw ↑
swagger: '2.0'
info:
  version: v1
  title: API version v1
host: api.ucla.edu
basePath: /sis
schemes:
- https
paths:
  /classes/{offeredTermCode}/v1:
    get:
      tags:
      - Classes
      summary: Returns a collection of courses offered in a term
      operationId: Classes_GetClasses
      consumes: []
      produces:
      - application/json
      - text/json
      parameters:
      - name: offeredTermCode
        in: path
        description: '151'
        required: true
        type: string
      - name: subjectAreaCode
        in: query
        description: ENGCOMP
        required: false
        type: string
      - name: courseCatalogNumber
        in: query
        description: '0003'
        required: false
        type: string
      - name: courseStartTermCode
        in: query
        description: 99F
        required: false
        type: string
      - name: termsessionGroupCode
        in: query
        description: A
        required: false
        type: string
      - name: termsessionInstructionWeeks
        in: query
        description: '6'
        required: false
        type: string
      - name: classNumber
        in: query
        description: '001'
        required: false
        type: string
      - name: PageNumber
        in: query
        description: '1'
        required: false
        type: integer
        format: int32
      - name: PageSize
        in: query
        description: Default 10.<br />Pass 0 to get all records.
        required: false
        type: integer
        format: int32
      - name: esmAuthnClientToken
        in: header
        description: esmAuthnClientToken.  Passed as header value to pass on through authorization.
        required: false
        type: string
      responses:
        '200':
          description: Record(s) found
          schema:
            $ref: '#/definitions/ClassesCollection'
        ' 200':
          description: Record(s) found
        ' 400':
          description: Bad Request
        ' 401':
          description: Unauthorized
        ' 403':
          description: Forbidden
        ' 404':
          description: No Record Found
        ' 500':
          description: Server Error
      deprecated: false
  /classes/{offeredTermCode}/{subjectAreaCode}/{courseCatalogNumber}/{classNumber}/classfinalexam/v1:
    get:
      tags:
      - Classes
      summary: ''
      operationId: ClassFinalExam_GetClassFinalExam
      consumes: []
      produces:
      - application/json
      - text/json
      parameters:
      - name: offeredTermCode
        in: path
        description: 14F
        required: true
        type: string
      - name: subjectAreaCode
        in: path
        description: MATH
        required: true
        type: string
      - name: courseCatalogNumber
        in: path
        description: '0001'
        required: true
        type: string
      - name: classNumber
        in: path
        description: '001'
        required: true
        type: string
      - name: esmAuthnClientToken
        in: header
        description: esmAuthnClientToken.  Passed as header value to pass on through authorization.
        required: false
        type: string
      responses:
        '200':
          description: Record(s) found
          schema:
            $ref: '#/definitions/ClassFinalExamResponse'
        ' 200':
          description: Record(s) found
        ' 400':
          description: Bad Request
        ' 401':
          description: Unauthorized
        ' 403':
          description: Forbidden
        ' 404':
          description: No Record Found
        ' 500':
          description: Server Error
      deprecated: false
  /classes/{offeredTermCode}/{subjectAreaCode}/{courseCatalogNumber}/{classNumber}/classdetail/v1:
    get:
      tags:
      - Classes
      summary: ''
      operationId: ClassDetail_GetClassDetail
      consumes: []
      produces:
      - application/json
      - text/json
      parameters:
      - name: offeredTermCode
        in: path
        description: 14F
        required: true
        type: string
      - name: subjectAreaCode
        in: path
        description: MATH
        required: true
        type: string
      - name: courseCatalogNumber
        in: path
        description: '0375'
        required: true
        type: string
      - name: classNumber
        in: path
        description: '001'
        required: true
        type: string
      - name: esmAuthnClientToken
        in: header
        description: esmAuthnClientToken.  Passed as header value to pass on through authorization.
        required: false
        type: string
      responses:
        '200':
          description: Record(s) found
          schema:
            $ref: '#/definitions/ClassDetailResponse'
        ' 200':
          description: Record(s) found
        ' 400':
          description: Bad Request
        ' 401':
          description: Unauthorized
        ' 403':
          description: Forbidden
        ' 404':
          description: No Record Found
        ' 500':
          description: Server Error
      deprecated: false
  /classes/unex/{offeredTermCode}/v1:
    get:
      tags:
      - Classes
      summary: ''
      operationId: UNEXClassesSections_Get
      consumes: []
      produces:
      - application/json
      - text/json
      parameters:
      - name: offeredTermCode
        in: path
        description: 14F
        required: true
        type: string
      - name: subjectAreaCode
        in: query
        description: MATH
        required: false
        type: string
      - name: courseCatalogNumber
        in: query
        description: '0375'
        required: false
        type: string
      - name: esmAuthnClientToken
        in: header
        description: esmAuthnClientToken.  Passed as header value to pass on through authorization.
        required: false
        type: string
      responses:
        '200':
          description: Record(s) found
          schema:
            $ref: '#/definitions/UNEXClassSection'
        ' 200':
          description: Record(s) found
        ' 400':
          description: Bad Request
        ' 401':
          description: Unauthorized
        ' 403':
          description: Forbidden
        ' 404':
          description: No Record Found
        ' 500':
          description: Server Error
      deprecated: false
  /classsections/{offeredTermCode}/{subjectAreaCode}/{courseCatalogNumber}/{classNumber}/v1:
    get:
      tags:
      - Class Sections
      summary: Returns a collection of sections in a class
      operationId: ClassSections_GetClassSections
      consumes: []
      produces:
      - application/json
      - text/json
      parameters:
      - name: offeredTermCode
        in: path
        description: 14F
        required: true
        type: string
      - name: subjectAreaCode
        in: path
        description: MATH
        required: true
        type: string
      - name: courseCatalogNumber
        in: path
        description: '0001'
        required: true
        type: string
      - name: classNumber
        in: path
        description: '001'
        required: true
        type: string
      - name: classSectionNumber
        in: query
        description: '001'
        required: false
        type: string
      - name: esmAuthnClientToken
        in: header
        description: esmAuthnClientToken.  Passed as header value to pass on through authorization.
        required: false
        type: string
      responses:
        '200':
          description: Record(s) found
          schema:
            $ref: '#/definitions/ClassSectionsResponse'
        ' 200':
          description: Record(s) found
        ' 400':
          description: Bad Request
        ' 401':
          description: Unauthorized
        ' 403':
          description: Forbidden
        ' 404':
          description: No Record Found
        ' 500':
          description: Server Error
      deprecated: false
  /classsections/{offeredTermCode}/{subjectAreaCode}/{courseCatalogNumber}/{classSectionNumber}/classsectiondetail/v1:
    get:
      tags:
      - Class Sections
      summary: ''
      operationId: ClassSectionDetail_GetClassSectionDetail
      consumes: []
      produces:
      - application/json
      - text/json
      parameters:
      - name: offeredTermCode
        in: path
        description: 14F
        required: true
        type: string
      - name: subjectAreaCode
        in: path
        description: MATH
        required: true
        type: string
      - name: courseCatalogNumber
        in: path
        description: 0003A
        required: true
        type: string
      - name: classSectionNumber
        in: path
        description: '001'
        required: true
        type: string
      - name: esmAuthnClientToken
        in: header
        description: esmAuthnClientToken.  Passed as header value to pass on through authorization.
        required: false
        type: string
      responses:
        '200':
          description: Record(s) found
          schema:
            $ref: '#/definitions/ClassSectionDetailResponse'
        ' 200':
          description: Record(s) found
        ' 400':
          description: Bad Request
        ' 401':
          description: Unauthorized
        ' 403':
          description: Forbidden
        ' 404':
          description: No Record Found
        ' 500':
          description: Server Error
      deprecated: false
definitions:
  Object:
    type: object
    properties: {}
  ClassSectionsResponse:
    type: object
    properties:
      classSection:
        $ref: '#/definitions/ClassSections'
  ClassSections:
    type: object
    properties:
      dataDisclosureWarning:
        type: string
      offeredTermCode:
        type: string
      subjectAreaCode:
        type: string
      courseCatalogNumber:
        type: string
      courseStartTermCode:
        type: string
      classNumber:
        type: string
      classSectionSessionDisplayFormat:
        type: string
      classSectionCollection:
        type: array
        items:
          $ref: '#/definitions/ClassSectionNumber'
  ClassSectionNumber:
    type: object
    properties:
      classSectionNumber:
        type: string
      links:
        type: array
        items:
          $ref: '#/definitions/LinkModel'
  LinkModel:
    type: object
    properties:
      href:
        type: string
      rel:
        type: string
      method:
        type: string
  ClassSectionDetailResponse:
    type: object
    properties:
      lastCachedAt:
        format: date-time
        type: string
      classSectionDetail:
        $ref: '#/definitions/ClassSectionDetail'
  ClassSectionDetail:
    type: object
    properties:
      dataDisclosureWarning:
        type: string
      offeredTermCode:
        type: string
      subjectAreaCode:
        type: string
      courseCatalogNumber:
        type: string
      courseStartTermCode:
        type: string
      classSectionNumber:
        type: string
      classSectionNumberDisplay:
        type: string
      classSectionID:
        type: string
      classSectionSessionDisplayFormat:
        type: string
      concurrentEnrollmentFlag:
        type: string
      classSectionActivityCode:
        type: string
      classSectionActivityEnrollmentSequenceNumber:
        type: string
      classSectionPrimaryActivityFlag:
        type: string
      classSectionGradeTypeCode:
        type: string
      classSectionUnitTypeCode:
        type: string
      classSectionUnitCollection:
        type: array
        items:
          $ref: '#/definitions/ClassSectionUnit'
      classSectionNotesCollection:
        type: array
        items:
          $ref: '#/definitions/ClassSectionNotes'
      classSectionOnlineFlag:
        type: string
      classEnrollmentRestrictionTextCollection:
        type: array
        items:
          $ref: '#/definitions/ClassSectionRestrictionText'
      classSectionEnrollmentStatusCode:
        type: string
      classSectionEnrollmentCapacityNumber:
        type: string
      classSectionEnrollmentTotal:
        type: string
      classSectionUNEXEnrollmentTotal:
        type: string
      classSectionProjectedEnrollmentNumber:
        type: string
      classSectionCancelBefore3rdWeekFlag:
        type: string
      classSectionWeek3EnrollmentNumber:
        type: string
      classSectionWeek8EnrollmentNumber:
        type: string
      classSectionWaitlistCapacityNumber:
        type: string
      classSectionWaitlistTotal:
        type: string
      classSectionSchedulePrintCode:
        type: string
      instructorUCLAIDCollection:
        type: array
        items:
          $ref: '#/definitions/ClassSectionInstructor'
      classSectionCombinedMeetingId:
        type: string
      classSectionMeetingCollection:
        type: array
        items:
          $ref: '#/definitions/ClassSectionMeetingLocation'
      links:
        type: array
        items:
          $ref: '#/definitions/LinkModel'
  ClassSectionUnit:
    type: object
    properties:
      classSectionUnit:
        type: string
  ClassSectionNotes:
    type: object
    properties:
      classSectionNotes:
        type: string
  ClassSectionRestrictionText:
    type: object
    properties:
      classEnrollmentRestrictionText:
        type: string
      classEnrollmentConsentRequiredCode:
        type: string
      classEnrollmentRuleID:
        type: string
  ClassSectionInstructor:
    type: object
    properties:
      uclaid:
        type: string
      links:
        $ref: '#/definitions/LinkModel'
  ClassSectionMeetingLocation:
    type: object
    properties:
      classSectionMeetingDaysofWeekCode:
        type: string
      classSectionMeetingStartTime:
        type: string
      classSectionMeetingStopTime:
        type: string
      classSectionBuildingCode:
        type: string
      classSectionBuildingRoomCode:
        type: string
  ClassesCollection:
    type: object
    properties:
      lastCachedAt:
        format: date-time
        type: string
      classes:
        type: array
        items:
          $ref: '#/definitions/Classes'
      totalRecords:
        format: int32
        type: integer
      totalPages:
        format: int32
        type: integer
      pageNumber:
        format: int32
        type: integer
      pageSize:
        format: int32
        type: integer
      links:
        type: array
        items:
          $ref: '#/definitions/LinkModel'
  Classes:
    type: object
    properties:
      dataDisclosureWarning:
        type: string
      offeredTermCode:
        type: string
      subjectAreaCode:
        type: string
      courseCatalogNumber:
        type: string
      courseCatalogNumberDisplay:
        type: string
      courseStartTermCode:
        type: string
      classSessionDisplayFormat:
        type: string
      termSessionGroupCollection:
        type: array
        items:
          $ref: '#/definitions/SessionGroup'
      links:
        type: array
        items:
          $ref: '#/definitions/LinkModel'
  SessionGroup:
    type: object
    properties:
      termsessionGroupCode:
        type: string
      termsessionInstructionWeeks:
        type: string
      termsessionGroupWeekCode:
        type: string
      classCollection:
        type: array
        items:
          $ref: '#/definitions/ClassNumber'
  ClassNumber:
    type: object
    properties:
      classNumber:
        type: string
      links:
        type: array
        items:
          $ref: '#/definitions/LinkModel'
  ClassFinalExamResponse:
    type: object
    properties:
      classFinalExam:
        $ref: '#/definitions/ClassFinalExam'
  ClassFinalExam:
    type: object
    properties:
      dataDisclosureWarning:
        type: string
      offeredTermCode:
        type: string
      subjectAreaCode:
        type: string
      courseCatalogNumber:
        type: string
      courseStartTermCode:
        type: string
      classNumber:
        type: string
      classSessionDisplayFormat:
        type: string
      finalExamCode:
        type: string
      finalExamDate:
        type: string
      finalExamDayOfWeek:
        type: string
      finalExamTimes:
        type: string
      finalExamLocation:
        type: string
  ClassDetailResponse:
    type: object
    properties:
      classDetail:
        $ref: '#/definitions/ClassDetail'
  ClassDetail:
    type: object
    properties:
      dataDisclosureWarning:
        type: string
      offeredTermCode:
        type: string
      subjectAreaCode:
        type: string
      courseCatalogNumber:
        type: string
      courseStartTermCode:
        type: string
      classNumber:
        type: string
      classNumberDisplay:
        type: string
      classDescription:
        type: string
      classNotesCollection:
        type: array
        items:
          $ref: '#/definitions/ClassNotes'
      classTitle:
        type: string
      classSessionCode:
        type: string
      classSessionDisplayFormat:
        type: string
      classSchedulePrintCode:
        type: string
      classStartDate:
        type: string
      classEndDate:
        type: string
      classWebsite:
        type: string
      classTextbook:
        type: string
      classMultipleTermGradingCode:
        type: string
      links:
        type: array
        items:
          $ref: '#/definitions/LinkModel'
  ClassNotes:
    type: object
    properties:
      classNotes:
        type: string
  UNEXClassSection:
    type: object
    properties:
      classesUNEX:
        type: array
        items:
          $ref: '#/definitions/ClassUNEX'
  ClassUNEX:
    type: object
    properties:
      dataDisclosureWarning:
        type: string
      offeredTermCode:
        type: string
      subjectAreaCode:
        type: string
      courseCatalogNumber:
        type: string
      classNumberCollection:
        type: array
        items:
          $ref: '#/definitions/ClassUNEXNumber'
  ClassUNEXNumber:
    type: object
    properties:
      classNumber:
        type: string
      classSectionCollection:
        type: array
        items:
          $ref: '#/definitions/ClassUNEXSection'
  ClassUNEXSection:
    type: object
    properties:
      classSectionNumber:
        type: string
  CourseCollection:
    type: object
    properties:
      courses:
        type: array
        items:
          $ref: '#/definitions/Course'
      totalRecords:
        format: int32
        type: integer
      totalPages:
        format: int32
        type: integer
      pageNumber:
        format: int32
        type: integer
      pageSize:
        format: int32
        type: integer
      links:
        type: array
        items:
          $ref: '#/definitions/LinkModel'
  Course:
    type: object
    properties:
      subjectAreaCode:
        type: string
      courseCatalogNumberCollection:
        type: array
        items:
          $ref: '#/definitions/CourseCatalogNumber'
  CourseCatalogNumber:
    type: object
    properties:
      courseCatalogNumber:
        type: string
      courseStartTermCode:
        type: string
  CourseDiversityResponse:
    type: object
    properties:
      courseDiversity:
        $ref: '#/definitions/CourseDiversity'
  CourseDiversity:
    type: object
    properties:
      subjectAreaCode:
        type: string
      courseCatalogNumber:
        type: string
      courseStartTermCode:
        type: string
      courseDiversityCollection:
        type: array
        items:
          $ref: '#/definitions/Diversity'
  Diversity:
    type: object
    properties:
      courseDiversityCollegeCode:
        type: string
      courseDiversityStartTermCode:
        type: string
      courseDiversityLastTermCode:
        type: string
  CourseGEFoundationResponse:
    type: object
    properties:
      courseGEFoundations:
        $ref: '#/definitions/CourseGEFoundation'
  CourseGEFoundation:
    type: object
    properties:
      subjectAreaCode:
        type: string
      courseCatalogNumber:
        type: string
      courseStartTermCode:
        type: string
      geFoundationCollection:
        type: array
        items:
          $ref: '#/definitions/GE'
      geAttributeCollection:
        type: array
        items:
          $ref: '#/definitions/CourseGEAttribute'
  GE:
    type: object
    properties:
      geFoundationCode:
        type: string
      geFoundationStartTermCode:
        type: string
      geFoundationCategoryCode:
        type: string
      geFoundationCategoryStartTermCode:
        type: string
      courseFoundationCategoryStartTermCode:
        type: string
      courseFoundationCategoryLastTermCode:
        type: string
  CourseGEAttribute:
    type: object
    properties:
      geAttributeCode:
        type: string
      geAttributeStartTermCode:
        type: string
      courseAttributeStartTermCode:
        type: string
      courseAttributeLastTermCode:
        type: string
  CourseDetailResponse:
    type: object
    properties:
      lastCachedAt:
        format: date-time
        type: string
      courseDetail:
        $ref: '#/definitions/CourseDetail'
  CourseDetail:
    type: object
    properties:
      subjectAreaCode:
        type: string
      courseCatalogNumber:
        type: string
      courseCatalogNumberDisplay:
        type: string
      courseStartTermCode:
        type: string
      courseLastTermCode:
        type: string
      courseCareerLevelCode:
        type: string
      courseLevelName:
        type: string
      courseShortTitle:
        type: string
      courseLongTitle:
        type: string
      courseSubtitleCollection:
        type: array
        items:
          $ref: '#/definitions/CourseSubtitle'
      courseDescription:
        type: string
      courseMaterialsFeeAmount:
        type: string
      individualStudiesFlag:
        type: string
      fiatLuxCourseFlag:
        type: string
      writingIICourseFlag:
        type: string
      impactedCourseFlag:
        type: string
      duplicateClassAllowedFlag:
        type: string
      equivalentCourseCollection:
        type: array
        items:
          $ref: '#/definitions/EquivalentCourse'
      multipleListedCourseCollection:
        type: array
        items:
          $ref: '#/definitions/MultipleListedCourse'
      concurrentCourseCollection:
        type: array
        items:
          $ref: '#/definitions/ConcurrentCourse'
      multiTermCourseSequenceNumber:
        type: string
      multiTermCourseCollection:
        type: array
        items:
          $ref: '#/definitions/MultiTerm'
      courseActivityCollection:
        type: array
        items:
          $ref: '#/definitions/CourseActivity'
      links:
        type: array
        items:
          $ref: '#/definitions/LinkModel'
  CourseSubtitle:
    type: object
    properties:
      courseShortSubtitle:
        type: string
      courseLongSubtitle:
        type: string
  EquivalentCourse:
    type: object
    properties:
      equivalentSubjectAreaCode:
        type: string
      equivalentCourseCatalogNumber:
        type: string
      equivalentCourseStartTermCode:
        type: string
  MultipleListedCourse:
    type: object
    properties:
      multipleListedSubjectAreaCode:
        type: string
      multipleListedCourseCatalogNumber:
        type: string
      multipleListedCourseStartTermCode:
        type: string
  ConcurrentCourse:
    type: object
    properties:
      concurrentSubjectAreaCode:
        type: string
      concurrentCourseCatalogNumber:
        type: string
      concurrentCourseStartTermCode:
        type: string
  MultiTerm:
    type: object
    properties:
      multiTermSubjectAreaCode:
        type: string
      multiTermCourseCatalogNumber:
        type: string
      multiTermCourseStartTermCode:
        type: string
      multiTermCourseTotalNumber:
        type: string
  CourseActivity:
    type: object
    properties:
      courseActivityTypeCode:
        type: string
      coursePrimaryActivityFlag:
        type: string
      courseGradeTypeCode:
        type: string
      courseUnitTypeCode:
        type: string
      courseUnitCollection:
        type: array
        items:
          $ref: '#/definitions/CourseUnit'
  CourseUnit:
    type: object
    properties:
      courseUnit:
        type: string
  CourseRequisiteResponse:
    type: object
    properties:
      courseRequisite:
        $ref: '#/definitions/CourseRequisite'
  CourseRequisite:
    type: object
    properties:
      subjectAreaCode:
        type: string
      courseCatalogNumber:
        type: string
      courseStartTermCode:
        type: string
      requisiteCollection:
        type: array
        items:
          $ref: '#/definitions/Requisite'
  Requisite:
    type: object
    properties:
      requisiteSequenceNumber:
        type: string
      requisiteCourseName:
        type: string
      requisiteCourseStartTerm:
        type: string
      requisiteCourseMinimumUnits:
        type: string
      requisiteCourseMinimumLetterGrade:
        type: string
      requisiteLogicalConnectorCode:
        type: string
      requisiteConnectorLeftParenthesis1:
        type: string
      requisiteConnectorLeftParenthesis2:
        type: string
      requisiteConnectorLeftParenthesis3:
        type: string
      requisiteConnectorRightParenthesis1:
        type: string
      requisiteConnectorRightParenthesis2:
        type: string
      requisiteConnectorRightParenthesis3:
        type: string
      coRequisiteFlag:
        type: string
      preRequisiteFlag:
        type: string
      requisiteSeverityText:
        type: string
  AcademicActionCollection:
    type: object
    properties:
      lastCachedAt:
        format: date-time
        type: string
      academicActions:
        type: array
        items:
          $ref: '#/definitions/AcademicAction'
      totalRecords:
        format: int32
        type: integer
      totalPages:
        format: int32
        type: integer
      pageNumber:
        format: int32
        type: integer
      pageSize:
        format: int32
        type: integer
      links:
        type: array
        items:
          $ref: '#/definitions/LinkModel'
  AcademicAction:
    type: object
    properties:
      academicActionCode:
        type: string
      academicActionDescription:
        type: string
  ActiveAcademicTermCollection:
    type: object
    properties:
      activeAcademicTerm:
        type: array
        items:
          $ref: '#/definitions/ActiveAcademicTerm'
  ActiveAcademicTerm:
    type: object
    properties:
      inputDate:
        type: string
      termSessionDate:
        type: string
      termCode:
        type: string
      termSequenceNumber:
        type: string
      termSessionStartDate:
        type: string
      termSessionLastDate:
        type: string
  ActivityTypeCollection:
    type: object
    properties:
      lastCachedAt:
        format: date-time
        type: string
      activityTypes:
        type: array
        items:
          $ref: '#/definitions/ActivityType'
      totalRecords:
        format: int32
        type: integer
      totalPages:
        format: int32
        type: integer
      pageNumber:
        format: int32
        type: integer
      pageSize:
        format: int32
        type: integer
      links:
        type: array
        items:
          $ref: '#/definitions/LinkModel'
  ActivityType:
    type: object
    properties:
      activityTypeCode:
        type: string
      activityTypeName:
        type: string
  AffiliationsTermSessionCollection:
    type: object
    properties:
      lastCachedAt:
        format: date-time
        type: string
      affiliationsTermSessions:
        type: array
        items:
          $ref: '#/definitions/AffiliationsTermSession'
      totalRecords:
        format: int32
        type: integer
      totalPages:
        format: int32
        type: integer
      pageNumber:
        format: int32
        type: integer
      pageSize:
        format: int32
        type: integer
      links:
        type: array
        items:
          $ref: '#/definitions/LinkModel'
  AffiliationsTermSession:
    type: object
    properties:
      affiliationName:
        type: string
      termSessionCode:
        type: string
  BuildingCollection:
    type: object
    properties:
      lastCachedAt:
        format: date-time
        type: string
      buildings:
        type: array
        items:
          $ref: '#/definitions/Building'
      totalRecords:
        format: int32
        type: integer
      totalPages:
        format: int32
        type: integer
      pageNumber:
        format: int32
        type: integer
      pageSize:
        format: int32
        type: integer
      links:
        type: array
        items:
          $ref: '#/definitions/LinkModel'
  Building:
    type: object
    properties:
      buildingCode:
        type: string
      buildingName:
        type: string
  CareerCollection:
    type: object
    properties:
      lastCachedAt:
        format: date-time
        type: string
      careers:
        type: array
        items:
          $ref: '#/definitions/Career'
      totalRecords:
        format: int32
        type: integer
      totalPages:
        format: int32
        type: integer
      pageNumber:
        format: int32
        type: integer
      pageSize:
        format: int32
        type: integer
      links:
        type: array
        items:
          $ref: '#/definitions/LinkModel'
  Career:
    type: object
    properties:
      careerCode:
        type: string
      careerName:
        type: string
  CityCollection:
    type: object
    properties:
      lastCachedAt:
        format: date-time
        type: string
      cities:
        type: array
        items:
          $ref: '#/definitions/City'
      totalRecords:
        format: int32
        type: integer
      totalPages:
        format: int32
        type: integer
      pageNumber:
        format: int32
        type: integer
      pageSize:
        format: int32
        type: integer
      links:
        type: array
        items:
          $ref: '#/definitions/LinkModel'
  City:
    type: object
    properties:
      universityLocationCode:
        type: string
      cityName:
        type: string
      cityStartTermCode:
        type: string
      cityStartDate:
        type: string
      cityLastTermCode:
        type: string
      cityLastDate:
        type: string
      universityLocationStartTermCode:
        type: string
  ClassLevelCollection:
    type: object
    properties:
      lastCachedAt:
        format: date-time
        type: string
      classLevels:
        type: array
        items:
          $ref: '#/definitions/ClassLevel'
      totalRecords:
        format: int32
        type: integer
      totalPages:
        format: int32
        type: integer
      pageNumber:
        format: int32
        type: integer
      pageSize:
        format: int32
        type: integer
      links:
        type: array
        items:
          $ref: '#/definitions/LinkModel'
  ClassLevel:
    type: object
    properties:
      classLevelCode:
        type: string
      classLevelName:
        type: string
  ClassNumbersCollection:
    type: object
    properties:
      lastCachedAt:
        format: date-time
        type: string
      classNumbers:
        type: array
        items:
          $ref: '#/definitions/ClassNumbers'
      totalRecords:
        format: int32
        type: integer
      totalPages:
        format: int32
        type: integer
      pageNumber:
        format: int32
        type: integer
      pageSize:
        format: int32
        type: integer
      links:
        type: array
        items:
          $ref: '#/definitions/LinkModel'
  ClassNumbers:
    type: object
    properties:
      classNumber:
        type: string
      displayClassNumber:
        type: string
  EnrollmentStatusCollection:
    type: object
    properties:
      lastCachedAt:
        format: date-time
        type: string
      enrollmentStatuses:
        type: array
        items:
          $ref: '#/definitions/EnrollmentStatus'
      totalRecords:
        format: int32
        type: integer
      totalPages:
        format: int32
        type: integer
      pageNumber:
        format: int32
        type: integer
      pageSize:
        format: int32
        type: integer
      links:
        type: array
        items:
          $ref: '#/definitions/LinkModel'
  EnrollmentStatus:
    type: object
    properties:
      classSectionEnrollmentStatus

# --- truncated at 32 KB (352 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/ucla/refs/heads/main/openapi/ucla-sis-classes-openapi.yml