openapi: 3.2.0 info: title: University Of Wisconsin Madison Jobs API version: 1.0.0 contact: name: DoIT Enterprise Integration API Team email: api@doit.wisc.edu url: https://go.wisc.edu/k701y6 description: 'Operations tagged jobs across 3 of this provider''s published API definitions: university-of-wisconsin-madison-mock-person-api-certificates-openapi.yml, university-of-wisconsin-madison-mock-person-api-openapi.yml, university-of-wisconsin-madison-person-api-openapi.yml. Each path carries the servers of the definition it was published in.' servers: - url: https://mock.api.wisc.edu - url: https://api.wisc.edu security: - OAuth2ClientCredentials: [] tags: - name: jobs paths: /people/{id}/jobs: get: description: "
\n
\n

\n Get jobs for a person. During the transition from HRS to Workday, a Person will have two versions of a\n given job, one from HRS and one from Workday as indicated by the \"source\" attribute. The different versions\n of jobs have some unique attributes mentioned below. All other attributes will be populated for both HRS\n and Workday jobs, but their values might differ slightly. Workday jobs are refreshed infrequently and might\n contain older data than HRS jobs.\n

\n

\n HRS jobs will contain data for the following attributes:\n

\n \n

\n Workday jobs will contain data for the following attributes:\n

\n \n
\n
" summary: Get jobs. operationId: get_person_jobs tags: - jobs parameters: - name: id description: 'ID of a person. This parameter should not be manually built/concatenated, but instead be used by following the fully-formed links returned in an API response. To get a person by an ID, use query parameters to search by a specific identifier. Example: /people?filter[identifiers.name]=netId&filter[identifiers.value]=bbadger' in: path example: '700' required: true schema: type: string description: An ephemeral identifier used only in the Person API to adhere to the [JSON:API specification](https://jsonapi.org/format/#document-resource-object-identification). This ID may change if a person is split into two people or two people are merged into one person. This ID is used for paginating results or following other links returned in the API response. This ID should not be stored in a consuming system. Concatenating parts of the URL to form a link is discouraged. Instead, use the fully-formed links returned in an API response. example: '12345' - name: fields in: query description: Specify the list of fields you would like to return for each resource type. For example, `fields[people]=firstName,lastName` will just return the names for people. If you are including related resources with 'includes' you can also specify fields on those resources as well. For example, `includes=jobs&fields[people]=jobs&fields[jobs]=title` will just return titles for jobs. See [Sparse Fieldsets](https://jsonapi.org/format/#fetching-sparse-fieldsets) for more details. required: false style: deepObject explode: true schema: type: object additionalProperties: false properties: type: type: string example: people - name: filter in: query description: Filter results of query using the [filter query parameter family](https://jsonapi.org/recommendations/#filtering). Refer to the [Person API Documentation](/person-api/filter-query-parameter) for more information about the `filter` query param. required: false style: deepObject explode: true schema: type: object additionalProperties: false properties: attribute: type: string example: firstName - name: include in: query description: '[include related resources](https://jsonapi.org/format/#fetching-includes). The resources to include need to be direct relationships. Nested relationships are not supported. For example, `include=jobs,identifiers` is supported but `include=person.jobs` is not supported.' schema: type: string responses: '200': description: A collection of jobs content: application/vnd.api+json: schema: type: object required: - data - links properties: data: description: A collection of jobs type: array items: description: Details about a job associated with a person. type: object required: - type - id - attributes - relationships properties: type: type: string example: jobs id: type: string example: '12345' description: Ephemeral ID used to adhere to the JSON:API specification. This ID should not be stored. attributes: type: object required: - title - division - divisionCode - departmentUnit - beginDate - endDate - effectiveDate - fullTimeEquivalent - payBasis - employeeCategoryCode - employeeCategory - jobCode - businessTitle - position - current - primary - supervisoryOrganizationId - costCenterId - source - institution - locationId - workspaceId - action - actionReason properties: title: type: string example: Software Eng/Developer I description: Title of the person's position at this job. division: type: - string - 'null' example: INFORMATION TECHNOLOGY description: High level organizational unit where the job is located. divisionCode: type: - string - 'null' example: A067040 description: Code for the location of the job. departmentUnit: type: - string - 'null' example: L&S/COMPUTER SCI/COMP SCI description: Organization path where the job is located. beginDate: type: string format: date example: '2018-01-01' description: The date the job began. endDate: type: - string - 'null' format: date example: '2025-01-01' description: The date the job ended. effectiveDate: type: string format: date example: '2018-01-01' description: The date the newest action on this job is effective. fullTimeEquivalent: type: string example: '0.5' description: The full time equivalency of the job. Represented as a decimal for HRS jobs and as a percentage for Workday jobs. payBasis: type: string enum: - Academic - Annual - Hourly - Lump - No Pay Basis - Summer Service - Summer Session - Unknown - Salary - No_Pay - Period_Activity_Pay - One_Time_Payment example: Annual description: The pay basis for this position. HRS jobs have a value of Academic, Annual, Hourly, Lump, No Pay Basis, Summer Service, Summer Session, or Unknown. Workday jobs have a value of Hourly, Salary, No_Pay, Period_Activity_Pay, or One_Time_Payment. employeeCategoryCode: type: string example: AS description: Unique identifier for an employee category. employeeCategory: type: string example: Academic Staff description: 'See this document for information on this field: https://kb.wisc.edu/ohr/policies/page.php?id=53496' jobCode: type: string example: IT002 description: Unique identifier for the job title. businessTitle: type: string example: Software Engineer/Developer description: Business title of the person's position at this job. position: type: string example: 00123456-1 description: An identifier to be used to uniquely identify a job for a person. This is a concatenation of the position and job record from Peoplesoft HRS, separated by a hyphen '-' (without quotes). It is not recommended to parse this value, but instead use it as an opaque identifier. current: type: boolean example: true description: Property that indicates if this job is current. primary: type: boolean example: true description: Property that indicates if this is the primary job. supervisoryOrganizationId: type: - string - 'null' example: SO00001234 description: The ID of the supervisory organization for this job. costCenterId: type: - string - 'null' example: CC001234 description: The ID of the cost center for this job. costCenterName: type: - string - 'null' example: UWMSN | DOIT | Application Infrastructure Services description: The name of the cost center for this job. Only available for jobs with source Workday. source: type: string example: HRS enum: - HRS - Workday description: The source of this job. institution: description: The institution associated with the resource. type: string example: UW-Madison enum: - Shared - UW-Eau Claire - UW-Green Bay - UW-La Crosse - UW-Madison - UW-Milwaukee - UW Oshkosh - UW-Parkside - UW-Platteville - UW-River Falls - UW-Stevens Point - UW-Stout - UW-Superior - UW-Whitewater - UW-Extension - UW System supervisoryOrganizationName: type: - string - 'null' example: Application Infrastructure Services description: The name of the supervisory organization for this job. Only available for jobs with source Workday. supervisoryOrganizationCode: type: - string - 'null' example: UWMSN | DOIT | description: The code of the supervisory organization for this job. Only available for jobs with source Workday. relatedSupervisoryOrganizationIds: type: - array - 'null' items: type: string example: - SO00000000 - SO00001234 - SO00002345 description: The IDs of the supervisory organizations related to this job. This list contains IDs of all parent supervisory organizations and IDs of supervisory organizations that this position manages. managedSupervisoryOrganizationIds: type: - array - 'null' items: type: string example: - SO00002345 description: The IDs of the supervisory organizations that this job manages. locationId: type: - string - 'null' example: LCMSN_0048 description: The ID of the location for this job. Only available for jobs with source Workday. workspaceId: type: - string - 'null' example: LCMSN_0048_03_0323 description: The ID of the workspace for this job. Only available for jobs with source Workday. action: type: - string - 'null' example: Change Job description: Workday business process. actionReason: type: - string - 'null' example: CJ9 description: Reason for the action. Not all actions have a reason. relationships: type: object required: - person - supervisor properties: person: description: A generic relationship object type: object properties: links: type: object properties: related: type: string example: https://api.wisc.edu/link/to/related/object data: type: object properties: type: type: string example: sampleType id: type: string example: sampleId supervisor: description: The supervisor for the job. If the job reports to a position that has 0 or greater than 2 people occupying it, this relationship is empty. If the job reports to a position occupied by 2 people, this relationship points to the person with the most recently entered job. type: object properties: links: type: object properties: related: type: string example: https://api.wisc.edu/people/123 data: type: object properties: type: type: string example: people id: type: string example: '123' links: description: The link to access a resource itself type: object properties: self: type: string example: https://api.wisc.edu/link/to/self included: description: Included related resources type: array items: description: A generic resource object type: object properties: type: type: string example: sampleType id: type: string example: sampleId attributes: type: object properties: attribute1: type: string example: sampleStringAttribute attribute2: type: number example: 123 relationships: type: object properties: relatedResource: description: A generic relationship object type: object properties: links: type: object properties: related: type: string example: https://api.wisc.edu/link/to/related/object data: type: object properties: type: type: string example: sampleType id: type: string example: sampleId links: description: The link to access a resource itself type: object properties: self: type: string example: https://api.wisc.edu/link/to/self examples: example-jobs: value: data: - attributes: departmentUnit: DOIT/AIS/ENTERPRISE INTEGRAT division: INFORMATION TECHNOLOGY divisionCode: A067040 title: Product Manager beginDate: '2020-01-01' endDate: '2080-01-01' effectiveDate: '2020-01-01' fullTimeEquivalent: '1' payBasis: Annual primary: true employeeCategory: Academic Staff employeeCategoryCode: AS jobCode: IT002 businessTitle: Department Product Manager position: 00123456-1 current: true supervisoryOrganizationId: null supervisoryOrganizationName: null supervisoryOrganizationCode: null costCenterId: null costCenterName: null source: HRS institution: UW-Madison relatedSupervisoryOrganizationIds: [] managedSupervisoryOrganizationIds: [] locationId: null workspaceId: null action: null actionReason: null id: '100' relationships: person: data: id: '100' type: people links: related: https://api.wisc.edu/people/100 supervisor: data: id: '200' type: people links: related: https://api.wisc.edu/people/200 type: jobs - attributes: departmentUnit: null division: null divisionCode: null title: Product Manager beginDate: '2020-01-01' endDate: '2080-01-01' effectiveDate: '2020-01-01' fullTimeEquivalent: '1' payBasis: Annual primary: true employeeCategory: Academic Staff employeeCategoryCode: AS jobCode: IT002 businessTitle: Department Product Manager position: 00123456-1 current: true supervisoryOrganizationId: SO00001234 supervisoryOrganizationName: Application Infrastructure Services supervisoryOrganizationCode: UWMSN | DOIT | costCenterId: CC001234 costCenterName: UWMSN | DOIT | Application Infrastructure Services source: Workday institution: UW-Madison relatedSupervisoryOrganizationIds: - SO00000000 - SO00001234 - SO00002345 managedSupervisoryOrganizationIds: - SO00002345 locationId: LCMSN_0048 workspaceId: LCMSN_0048_03_0323 action: Change Job actionReason: CJ9 id: '100' relationships: person: data: id: '100' type: people links: related: https://api.wisc.edu/people/100 supervisor: data: id: '200' type: people links: related: https://api.wisc.edu/people/200 type: jobs links: self: https://api.wisc.edu/people/100/jobs '400': description: A bad request. content: application/vnd.api+json: schema: type: object properties: errors: type: array items: description: An error type: object properties: status: type: integer example: 400 title: type: string example: Error title detail: type: string example: Additional details about the error links: type: object meta: type: object source: type: object examples: application/vnd.api+json: value: errors: - id: null links: {} meta: {} source: {} status: 400 title: Bad Request detail: Invalid properties in query parameters - resource type 'people' has no attribute 'invalid'. '401': description: Incorrect or expired OAuth token. content: application/vnd.api+json: schema: type: object properties: errors: type: array items: description: An error type: object properties: status: type: integer example: 400 title: type: string example: Error title detail: type: string example: Additional details about the error links: type: object meta: type: object source: type: object examples: unauthorized-response: value: errors: - status: 401 title: Unauthorized detail: Invalid OAuth authentication - InvalidAccessToken '403': description: The API call is authenticated but the client isn't allowed to perform the requested operation. This can occur when trying to update a resource when granted read-only access. content: application/vnd.api+json: schema: type: object properties: errors: type: array items: description: An error type: object properties: status: type: integer example: 400 title: type: string example: Error title detail: type: string example: Additional details about the error links: type: object meta: type: object source: type: object examples: name-update-example: value: errors: - status: 403 title: Forbidden detail: Client is not allowed to create, update, or delete a person's name. no-access-example: value: errors: - status: 403 title: Forbidden detail: Requested method is forbidden for endpoint - GET - /people '404': description: Unable to find the specified record content: application/vnd.api+json: schema: type: object properties: errors: type: array items: description: An error type: object properties: status: type: integer example: 400 title: type: string example: Error title detail: type: string example: Additional details about the error links: type: object meta: type: object source: type: object examples: not-found-example: value: errors: - status: 404 title: Not Found detail: Requested resource not found. '406': description: Servers respond with a 406 Not Acceptable status code if a request’s Accept header contains the JSON:API media type and all instances of that media type are modified with media type parameters. content: application/vnd.api+json: schema: type: object properties: errors: type: array items: description: An error type: object properties: status: type: integer example: 400 title: type: string example: Error title detail: type: string example: Additional details about the error links: type: object meta: type: object source: type: object examples: not-acceptable-example: value: errors: - status: 406 title: Not Acceptable detail: Request's Accept header contained the JSON:API media type and all instances of that media type were modified with media type parameters. '429': description: The API quota has been exceeded. content: application/vnd.api+json: schema: type: object properties: errors: type: array items: description: An error type: object properties: status: type: integer example: 400 title: type: string example: Error title detail: type: string example: Additional details about the error links: type: object meta: type: object source: type: object examples: not-found-example: value: errors: - status: 429 title: Too Many Requests detail: The quota has been exceeded. '500': description: An unexpected error. content: application/vnd.api+json: schema: type: object properties: errors: type: array items: description: An error type: object properties: status: type: integer example: 400 title: type: string example: Error title detail: type: string example: Additional details about the error links: type: object meta: type: object source: type: object examples: not-found-example: value: errors: - status: 500 title: Internal Server Error detail: Something went wrong in the server-side. servers: - url: https://mock.api.wisc.edu /people/{id}/jobs/{jobId}: get: description: Get a single job for a person. Refer to the [Jobs endpoint](/docs/person-api/1/routes/people/%7Bid%7D/jobs/get) for more information on the data returned. summary: Get a job. operationId: get_person_job tags: - jobs parameters: - name: id description: 'ID of a person. This parameter should not be manually built/concatenated, but instead be used by following the fully-formed links returned in an API response. To get a person by an ID, use query parameters to search by a specific identifier. Example: /people?filter[identifiers.name]=netId&filter[identifiers.value]=bbadger' in: path example: e2118c5a-aae2-4475-a661-bb0592effefa required: true schema: type: string description: An ephemeral identifier used only in the Person API to adhere to the [JSON:API specification](https://jsonapi.org/format/#document-resource-object-identification). This ID may change if a person is split into two people or two people are merged into one person. This ID is used for paginating results or following other links returned in the API response. This ID should not be stored in a consuming system. Concatenating parts of the URL to form a link is discouraged. Instead, use the fully-formed links returned in an API response. - name: jobId description: ID of a job. This parameter should not be manually built/concatenated, but instead be used by following the fully-formed links returned in an API response. in: path example: 8dfe342c-5d6b-4e64-9291-31cb643ae39a required: true schema: type: string description: Ephemeral ID used to adhere to the JSON:API specification. This ID should not be stored. - name: filterIncluded in: query description: Filter the resources returned in the `included` section of the response. Refer to the [Person API Documentation](https://kb.wisc.edu/uw-apis/158404#filter-included) for more information about the `filterIncluded` query param. required: false style: deepObject explode: true schema: type: object additionalProperties: false properties: relationship:attribute: type: string example: jobs:title attribute: type: string example: firstName - name: include in: query description: '[include related resources](https://jsonapi.org/format/#fetching-includes) for jobs.' schema: type: string enum: - organizationStructure - costAllocations responses: '200': description: A single job content: application/vnd.api+json: schema: type: object required: - data - links properties: data: description: Details about a job associated with a person. type: object required: - type - id - attributes - relationships - links properties: type: type: string example: jobs id: type: string description: Ephemeral ID used to adhere to the JSON:API specification. This ID should not be stored. attributes: type: object required: - title - annualizedSalary - basePay - beginDate - endDate - effectiveDate - fullTimeEquivalent - compensationBasis - payRateType - employeeCategoryCode - employeeCategory - jobCode - jobProfileName - businessTitle - position - current - primary - supervisoryOrganizationId - costCenterId - source - institution - locationId - locationName - workspaceId - action - actionReason - workerType properties: title: type: string example: Software Eng/Developer I description: Title of the person's position at this job. minLength: 1 annualizedSalary: type: - number - 'null' example: 90384.56 description: The annualized salary of the job. This is not the actual paid salary, but the expected annual salary given the normal pay rate and assuming full time equivalence, adjusted to a 12-month compensation basis (i.e. positions with a compensationBasis of 9 Month assume an FTE of 1.22222, while jobs with a compensationBasis of 12 Month assume 1.0 FTE). Only available for jobs with source Workday. basePay: type: - number - 'null' example: 75328.8 description: The base pay of the job. This is not the actual paid salary. For jobs with a payRateType of Hourly, this is usually the hourly rate. For jobs with a payRateType of Salary, this is usually the expected annual salary given the normal pay rate and assuming full time equivalence, not adjusted for compensation basis (i.e. 1.0 FTE for both 9- and 12-month appointments). Only available for jobs with source Workday. beginDate: type: string format: date example: '2018-01-01' description: The date the job began. endDate: type: - string - 'null' format: date example: '2025-01-01' description: The date the job ended. effectiveDate: type: string format: date example: '2018-01-01' description: The date the newest action on this job is effective. fullTimeEquivalent: type: string example: '100.0' pattern: ^-?\d+(\.\d+)?$ description: The full time equivalency of the job, represented as a percentage. payRateType: type: string enum: - Hourly - Salary - No_Pay - Period_Activity_Pay - One_Time_Payment - Hourly_Timeclock example: Hourly description: The pay rate type for this position. compensationBasis: type: - string - 'null' enum: - 12 Month - 9 Month - Summer - Seasonal - No Pay - null example: 12 Month description: Compensation basis for a job. employeeCategoryCode: type: string example: AS description: Unique identifier for an employee category. employeeCategory: type: string example: Academic Staff description: 'See this document for information on this field: https://kb.wisc.edu/ohr/policies/page.php?id=53496' minLength: 1 jobCode: type: string example: IT002 description: Unique identifier for the job title. minLength: 1 jobProfileName: type: string example: Software Engineer description: The job’s assigned official standard job code description defining the characteristics of that position within the organization. minLength: 1 businessTitle: type: string example: Software Engineer/Developer description: The job’s assigned official job title, which can be edited with HR approval to include more specific details about an individual position within the organization or the type of work performed. minLength: 1 position: type: string example: 00123456-1 description: An identifier to be used to uniquely identify a job for a person. minLength: 1 current: type: boolean example: true description: Property that indicates if this job is current. primary: type: boolean example: true description: Property that indicates if this is the primary job. In Workday, a person can only have 1 primary job system-wide. The job designated as primary may be invisible to the registered app if they are not able to view data for the insitution the primary job belongs to. supervisoryOrganizationId: type: - string - 'null' example: SO00001234 description: The ID of the supervisory organization for this job. Only available for jobs with source Workday. costCenterId: type: - string - 'null' example: CC001234 description: The ID of the cost center for this job. Only available for jobs with source Workday. costCenterName: type: - string - 'null' example: UWMSN | DOIT | Application Infrastructure Services description: The name of the cost center for this job. Only available for jobs with source Workday. source: type: string example: Workday description: The source of this job. enum: - Workday institution: description: The institution associated with the resource. type: string example: UW-Madison enum: - Shared - UW-Eau Claire - UW-Green Bay - UW-La Crosse - UW-Madison - UW-Milwaukee - UW Oshkosh - UW-Parkside - UW-Platteville - UW-River Falls - UW-Stevens Point - UW-Stout - UW-Superior - UW-Whitewater - UW-Extension - UW System supervisoryOrganizationName: type: - string - 'null' example: Application Infrastructure Services description: The name of the supervisory organization for this job. Only available for jobs with source Workday. supervisoryOrganizationCode: type: - string - 'null' example: UWMSN | DOIT | description: The code of the supervisory organization for this job. Only available for jobs with source Workday. relatedSupervisoryOrganizationIds: type: array items: type: string example: - SO00000000 - SO00001234 - SO00002345 description: The IDs of the supervisory organizations related to this job. This list contains IDs of all parent supervisory organizations and IDs of supervisory organizations that this position manages. Only available for jobs with source Workday. managedSupervisoryOrganizationIds: type: array items: type: string example: - SO00002345 description: The IDs of the supervisory organizations that this job manages. Only available for jobs with source Workday. locationId: type: - string - 'null' example: LCMSN_0048 description: The ID of the location for this job. Former jobs may have location IDs and names that are inaccurate or no longer exist. Only available for jobs with source Workday. locationName: type: - string - 'null' example: Memorial Union-0048 description: The name of the location for this job. Former jobs may have location IDs and names that are inaccurate or no longer exist. Only available for jobs with source Workday. workspaceId: type: - string - 'null' example: LCMSN_0048_03_0323 description: The ID of the workspace for this job. Only available for jobs with source Workday. action: type: - string - 'null' example: Change Job description: Workday business process. Only available for jobs with source Workday. actionReason: type: - string - 'null' example: CJ9 description: Reason for the action. Not all actions have a reason. Only available for jobs with source Workday. workerType: type: - string - 'null' example: Regular enum: - null - Regular - Terminal - Temporary - Contingent_Worker description: The type of worker. Only available for jobs with source Workday. relationships: type: object required: - person properties: person: description: A generic relationship object type: object properties: links: type: object properties: related: type: string example: https://api.wisc.edu/link/to/related/object data: type: - object - 'null' properties: type: type: string example: sampleType id: type: string example: sampleId supervisor: description: The supervisor for the job. If the job reports to a position that has 0 or greater than 2 people occupying it, this relationship is empty. If the job reports to a position occupied by 2 people, this relationship points to the person with the most recently entered job. type: object required: - data properties: links: type: object properties: related: type: - string - 'null' example: https://api.wisc.edu/people/123 data: type: - object - 'null' properties: type: type: string example: people id: type: string example: '123' organizationStructures: description: The UW organization structure associated with the job. type: object required: - data properties: links: type: object properties: related: type: string example: https://api.wisc.edu/people/e64ca453-2194-4e99-a596-adb4f36a170c/jobs/9434f047-b024-4631-bfb7-3d34004228fe/organizationStructure data: type: - object - 'null' properties: type: type: string example: organizationStructures id: type: string example: 91314182-3a7a-4690-83b2-a0050437c512 costAllocations: description: The Cost Allocations associated with the job. type: object required: - data - links properties: links: type: object properties: related: type: string example: https://api.wisc.edu/people/e64ca453-2194-4e99-a596-adb4f36a170c/jobs/9434f047-b024-4631-bfb7-3d34004228fe/costAllocations data: type: array items: type: - object - 'null' properties: type: type: string example: costAllocations id: type: string example: dc82b638-a6ec-4592-9cd8-e91b373284c2 links: description: The link to access a resource itself type: object properties: self: type: string example: https://api.wisc.edu/link/to/self links: description: The link to access a resource itself type: object properties: self: type: string example: https://api.wisc.edu/link/to/self included: description: Included related resources type: array items: description: A generic resource object type: object properties: type: type: string example: sampleType id: type: string example: sampleId attributes: type: object properties: attribute1: type: string example: sampleStringAttribute attribute2: type: number example: 123 relationships: type: object properties: relatedResource: description: A generic relationship object type: object properties: links: type: object properties: related: type: string example: https://api.wisc.edu/link/to/related/object data: type: - object - 'null' properties: type: type: string example: sampleType id: type: string example: sampleId links: description: The link to access a resource itself type: object properties: self: type: string example: https://api.wisc.edu/link/to/self examples: example-job: value: data: attributes: annualizedSalary: 90384.56 basePay: 75328.8 title: Product Manager beginDate: '2020-01-01' endDate: '2080-01-01' effectiveDate: '2020-01-01' fullTimeEquivalent: '100.0' payRateType: Salary compensationBasis: 12 Month primary: true employeeCategory: Academic Staff employeeCategoryCode: AS jobCode: IT002 jobProfileName: Product Manager businessTitle: Department Product Manager position: 00123456-1 current: true supervisoryOrganizationId: SO00001234 supervisoryOrganizationName: Application Infrastructure Services supervisoryOrganizationCode: UWMSN | DOIT | costCenterId: CC001234 costCenterName: UWMSN | DOIT | Application Infrastructure Services source: Workday institution: UW-Madison relatedSupervisoryOrganizationIds: - SO00000000 - SO00001234 - SO00002345 managedSupervisoryOrganizationIds: - SO00002345 locationId: LCMSN_0048 locationName: Memorial Union-0048 workspaceId: LCMSN_0048_03_0323 action: Change Job actionReason: CJ9 workerType: Regular id: 01de376e-b08d-4fd7-8553-6664d13f14c0 relationships: person: data: id: e2118c5a-aae2-4475-a661-bb0592effefa type: people links: related: https://api.wisc.edu/people/e2118c5a-aae2-4475-a661-bb0592effefa supervisor: data: id: 8cfb0434-2d95-490a-99e8-94f9b77f7916 type: people links: related: https://api.wisc.edu/people/8cfb0434-2d95-490a-99e8-94f9b77f7916 organizationStructures: data: id: 8cfb0434-2d95-490a-99e8-94f9b77f7916 type: organizationStructures links: related: https://api.wisc.edu/people/e2118c5a-aae2-4475-a661-bb0592effefa/jobs/01de376e-b08d-4fd7-8553-6664d13f14c0/organizationStructure type: jobs links: self: https://api.wisc.edu/people/e2118c5a-aae2-4475-a661-bb0592effefa/jobs/01de376e-b08d-4fd7-8553-6664d13f14c0 links: self: https://api.wisc.edu/people/e2118c5a-aae2-4475-a661-bb0592effefa/jobs/01de376e-b08d-4fd7-8553-6664d13f14c0 '400': description: A bad request. content: application/vnd.api+json: schema: description: A JSON:API error response body containing one or more errors. type: object properties: errors: type: array items: description: An error type: object properties: id: type: - string - 'null' example: 0fd247d9-a93c-4b48-bde8-247ce352ebcb status: type: integer example: 400 title: type: string example: Error title detail: type: string example: Additional details about the error links: type: object meta: type: object source: type: object examples: application/vnd.api+json: value: errors: - id: 0fd247d9-a93c-4b48-bde8-247ce352ebcb links: {} meta: {} source: {} status: 400 title: Bad Request detail: Invalid properties in query parameters - resource type 'people' has no attribute 'invalid'. '401': description: Incorrect or expired OAuth token. content: application/vnd.api+json: schema: description: A JSON:API error response body containing one or more errors. type: object properties: errors: type: array items: description: An error type: object properties: id: type: - string - 'null' example: 0fd247d9-a93c-4b48-bde8-247ce352ebcb status: type: integer example: 400 title: type: string example: Error title detail: type: string example: Additional details about the error links: type: object meta: type: object source: type: object examples: unauthorized-response: value: errors: - status: 401 title: Unauthorized detail: Invalid OAuth authentication - InvalidAccessToken '403': description: The API call is authenticated but the client isn't allowed to perform the requested operation. This can occur when trying to update a resource when granted read-only access. content: application/vnd.api+json: schema: description: A JSON:API error response body containing one or more errors. type: object properties: errors: type: array items: description: An error type: object properties: id: type: - string - 'null' example: 0fd247d9-a93c-4b48-bde8-247ce352ebcb status: type: integer example: 400 title: type: string example: Error title detail: type: string example: Additional details about the error links: type: object meta: type: object source: type: object examples: name-update-example: value: errors: - status: 403 title: Forbidden detail: Client is not allowed to create, update, or delete a person's name. no-access-example: value: errors: - status: 403 title: Forbidden detail: Requested method is forbidden for endpoint - GET - /people disabled-temporarily-example: value: errors: - status: 403 title: Forbidden detail: Webhook Create/Update/Delete operations are disabled temporarily. Try again later. '404': description: Unable to find the specified record content: application/vnd.api+json: schema: description: A JSON:API error response body containing one or more errors. type: object properties: errors: type: array items: description: An error type: object properties: id: type: - string - 'null' example: 0fd247d9-a93c-4b48-bde8-247ce352ebcb status: type: integer example: 400 title: type: string example: Error title detail: type: string example: Additional details about the error links: type: object meta: type: object source: type: object examples: not-found-example: value: errors: - status: 404 title: Not Found detail: Requested resource not found. '406': description: Servers respond with a 406 Not Acceptable status code if a request’s Accept header contains the JSON:API media type and all instances of that media type are modified with media type parameters. content: application/vnd.api+json: schema: description: A JSON:API error response body containing one or more errors. type: object properties: errors: type: array items: description: An error type: object properties: id: type: - string - 'null' example: 0fd247d9-a93c-4b48-bde8-247ce352ebcb status: type: integer example: 400 title: type: string example: Error title detail: type: string example: Additional details about the error links: type: object meta: type: object source: type: object examples: not-acceptable-example: value: errors: - status: 406 title: Not Acceptable detail: Request's Accept header contained the JSON:API media type and all instances of that media type were modified with media type parameters. '429': description: The API quota has been exceeded. content: application/vnd.api+json: schema: description: A JSON:API error response body containing one or more errors. type: object properties: errors: type: array items: description: An error type: object properties: id: type: - string - 'null' example: 0fd247d9-a93c-4b48-bde8-247ce352ebcb status: type: integer example: 400 title: type: string example: Error title detail: type: string example: Additional details about the error links: type: object meta: type: object source: type: object examples: not-found-example: value: errors: - status: 429 title: Too Many Requests detail: The quota has been exceeded. '500': description: An unexpected error. content: application/vnd.api+json: schema: description: A JSON:API error response body containing one or more errors. type: object properties: errors: type: array items: description: An error type: object properties: id: type: - string - 'null' example: 0fd247d9-a93c-4b48-bde8-247ce352ebcb status: type: integer example: 400 title: type: string example: Error title detail: type: string example: Additional details about the error links: type: object meta: type: object source: type: object examples: not-found-example: value: errors: - status: 500 title: Internal Server Error detail: Something went wrong in the server-side. servers: - url: https://mock.api.wisc.edu /people/{id}/jobs/{jobId}/costAllocations: get: description: Get a list of cost allocations for this job. summary: Get cost allocations. operationId: get_person_job_cost_allocations tags: - jobs parameters: - name: id description: 'ID of a person. This parameter should not be manually built/concatenated, but instead be used by following the fully-formed links returned in an API response. To get a person by an ID, use query parameters to search by a specific identifier. Example: /people?filter[identifiers.name]=netId&filter[identifiers.value]=bbadger' in: path example: e2118c5a-aae2-4475-a661-bb0592effefa required: true schema: type: string description: An ephemeral identifier used only in the Person API to adhere to the [JSON:API specification](https://jsonapi.org/format/#document-resource-object-identification). This ID may change if a person is split into two people or two people are merged into one person. This ID is used for paginating results or following other links returned in the API response. This ID should not be stored in a consuming system. Concatenating parts of the URL to form a link is discouraged. Instead, use the fully-formed links returned in an API response. - name: jobId description: ID of a job. This parameter should not be manually built/concatenated, but instead be used by following the fully-formed links returned in an API response. in: path example: 8dfe342c-5d6b-4e64-9291-31cb643ae39a required: true schema: type: string description: Ephemeral ID used to adhere to the JSON:API specification. This ID should not be stored. - name: fields in: query description: Specify the list of fields you would like to return for each resource type. For example, `fields[people]=firstName,lastName` will just return the names for people. If you are including related resources with 'includes' you can also specify fields on those resources as well. For example, `includes=jobs&fields[people]=jobs&fields[jobs]=title` will just return titles for jobs. See [Sparse Fieldsets](https://jsonapi.org/format/#fetching-sparse-fieldsets) for more details. required: false style: deepObject explode: true schema: type: object additionalProperties: false properties: type: type: string example: people - name: filterIncluded in: query description: Filter the resources returned in the `included` section of the response. Refer to the [Person API Documentation](https://kb.wisc.edu/uw-apis/158404#filter-included) for more information about the `filterIncluded` query param. required: false style: deepObject explode: true schema: type: object additionalProperties: false properties: relationship:attribute: type: string example: jobs:title attribute: type: string example: firstName - name: include in: query description: '[include related resources](https://jsonapi.org/format/#fetching-includes) for cost allocations.' schema: type: string enum: - worktags - name: advancedFilter in: query description: Filter results of query using the [Advanced Filter](https://kb.wisc.edu/uw-apis/158404#advanced-filters). required: false style: deepObject explode: true schema: type: object additionalProperties: false properties: attribute: type: string example: and(equals(firstName, "John"), equals(lastName, "Doe")) - name: filter[relationship.attribute] in: query required: false description: Filter results using the [filter query parameter family](https://jsonapi.org/recommendations/#filtering). Refer to the [Person API Documentation](https://kb.wisc.edu/uw-apis/158404) for more information. Filter resources by `relationship.attribute`. schema: type: - string - 'null' - name: filter[level] in: query required: false description: Filter results using the [filter query parameter family](https://jsonapi.org/recommendations/#filtering). Refer to the [Person API Documentation](https://kb.wisc.edu/uw-apis/158404) for more information. Filter `costAllocations` resources by `level`. schema: type: - string - 'null' - name: filter[startDate] in: query required: false description: Filter results using the [filter query parameter family](https://jsonapi.org/recommendations/#filtering). Refer to the [Person API Documentation](https://kb.wisc.edu/uw-apis/158404) for more information. Filter `costAllocations` resources by `startDate`. schema: type: string format: date pattern: ^[1-9][0-9]{3}-(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01])$ - name: filter[endDate] in: query required: false description: Filter results using the [filter query parameter family](https://jsonapi.org/recommendations/#filtering). Refer to the [Person API Documentation](https://kb.wisc.edu/uw-apis/158404) for more information. Filter `costAllocations` resources by `endDate`. schema: type: string format: date pattern: ^[1-9][0-9]{3}-(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01])$ - name: filter[current] in: query required: false description: Filter results using the [filter query parameter family](https://jsonapi.org/recommendations/#filtering). Refer to the [Person API Documentation](https://kb.wisc.edu/uw-apis/158404) for more information. Filter `costAllocations` resources by `current`. schema: type: boolean responses: '200': description: A collection of cost allocations. content: application/vnd.api+json: schema: type: object required: - data - links properties: data: description: A collection of cost allocations. type: array items: description: Details about a Cost Allocation associated with a job. type: object required: - type - id - attributes - relationships - links properties: type: type: string example: costAllocations id: type: string example: dc82b638-a6ec-4592-9cd8-e91b373284c2 attributes: type: object required: - level - startDate - endDate - current properties: level: description: 'The type of cost allocation based on the earning code. There are 3 Cost Allocations: Position Restriction - default funding. This is to be used when no other cost allocation is listed. Worker Position - Used for Total Base Pay. Worker Position Earnings - Used for lump sum, additional pay, etc.' enum: - Position Restrictions - Worker Position Earning - Worker Position type: string example: Position Restrictions startDate: description: The start date of this cost allocation. type: string format: date example: '2018-01-01' endDate: description: The end date of this cost allocation. type: string format: date example: '2018-01-01' current: type: boolean example: true description: Property that indicates if this cost allocation is current. relationships: type: object required: - job - worktags properties: job: description: A generic relationship object type: object properties: links: type: object properties: related: type: string example: https://api.wisc.edu/link/to/related/object data: type: - object - 'null' properties: type: type: string example: sampleType id: type: string example: sampleId worktags: description: A generic relationship object type: object properties: links: type: object properties: related: type: string example: https://api.wisc.edu/link/to/related/object data: type: array items: type: object properties: type: type: string example: sampleType id: type: string example: sampleId links: description: The link to access a resource itself type: object properties: self: type: string example: https://api.wisc.edu/link/to/self links: description: The link to access a resource itself type: object properties: self: type: string example: https://api.wisc.edu/link/to/self examples: example-costAllocations: value: data: - attributes: level: Position Restrictions startDate: '2025-01-01' endDate: '2050-01-01' current: true relationships: job: data: id: 01de376e-b08d-4fd7-8553-6664d13f14c0 type: jobs links: related: https://api.wisc.edu/people/e1ebbf76-7df7-4a43-947e-aa3741693db4/jobs/01de376e-b08d-4fd7-8553-6664d13f14c0 worktags: data: - id: 6f1f1014-e6c8-48b2-aba2-6b9000fec5af type: worktags links: related: https://api.wisc.edu/people/e1ebbf76-7df7-4a43-947e-aa3741693db4/jobs/01de376e-b08d-4fd7-8553-6664d13f14c0/costAllocations/dc82b638-a6ec-4592-9cd8-e91b373284c2/worktags id: dc82b638-a6ec-4592-9cd8-e91b373284c2 type: costAllocations links: self: https://api.wisc.edu/people/e1ebbf76-7df7-4a43-947e-aa3741693db4/jobs/01de376e-b08d-4fd7-8553-6664d13f14c0/costAllocations/dc82b638-a6ec-4592-9cd8-e91b373284c2 - attributes: level: Worker Position Earning startDate: '2010-01-01' endDate: '2025-01-01' current: false relationships: job: data: id: 01de376e-b08d-4fd7-8553-6664d13f14c0 type: jobs links: related: https://api.wisc.edu/people/e1ebbf76-7df7-4a43-947e-aa3741693db4/jobs/01de376e-b08d-4fd7-8553-6664d13f14c0 worktags: data: - id: 6f1f1014-e6c8-48b2-aba2-6b9000fec5af type: worktags links: related: https://api.wisc.edu/people/e1ebbf76-7df7-4a43-947e-aa3741693db4/jobs/01de376e-b08d-4fd7-8553-6664d13f14c0/costAllocations/dc82b638-a6ec-4592-9cd8-e91b373284c2/worktags id: cd28b336-4592-a6ec-8dc9-b19e237384e2 type: costAllocations links: self: https://api.wisc.edu/people/e1ebbf76-7df7-4a43-947e-aa3741693db4/jobs/01de376e-b08d-4fd7-8553-6664d13f14c0/costAllocations/cd28b336-4592-a6ec-8dc9-b19e237384e2 links: self: https://api.wisc.edu/people/e1ebbf76-7df7-4a43-947e-aa3741693db4/jobs/01de376e-b08d-4fd7-8553-6664d13f14c0/costAllocations example-empty-costAllocations: value: data: [] links: self: https://api.wisc.edu/people/e1ebbf76-7df7-4a43-947e-aa3741693db4/jobs/96c99501-d69e-4aad-92ea-1f6fa6bc7d6d/costAllocations '400': description: A bad request. content: application/vnd.api+json: schema: description: A JSON:API error response body containing one or more errors. type: object properties: errors: type: array items: description: An error type: object properties: id: type: - string - 'null' example: 0fd247d9-a93c-4b48-bde8-247ce352ebcb status: type: integer example: 400 title: type: string example: Error title detail: type: string example: Additional details about the error links: type: object meta: type: object source: type: object examples: application/vnd.api+json: value: errors: - id: 0fd247d9-a93c-4b48-bde8-247ce352ebcb links: {} meta: {} source: {} status: 400 title: Bad Request detail: Invalid properties in query parameters - resource type 'people' has no attribute 'invalid'. '401': description: Incorrect or expired OAuth token. content: application/vnd.api+json: schema: description: A JSON:API error response body containing one or more errors. type: object properties: errors: type: array items: description: An error type: object properties: id: type: - string - 'null' example: 0fd247d9-a93c-4b48-bde8-247ce352ebcb status: type: integer example: 400 title: type: string example: Error title detail: type: string example: Additional details about the error links: type: object meta: type: object source: type: object examples: unauthorized-response: value: errors: - status: 401 title: Unauthorized detail: Invalid OAuth authentication - InvalidAccessToken '403': description: The API call is authenticated but the client isn't allowed to perform the requested operation. This can occur when trying to update a resource when granted read-only access. content: application/vnd.api+json: schema: description: A JSON:API error response body containing one or more errors. type: object properties: errors: type: array items: description: An error type: object properties: id: type: - string - 'null' example: 0fd247d9-a93c-4b48-bde8-247ce352ebcb status: type: integer example: 400 title: type: string example: Error title detail: type: string example: Additional details about the error links: type: object meta: type: object source: type: object examples: name-update-example: value: errors: - status: 403 title: Forbidden detail: Client is not allowed to create, update, or delete a person's name. no-access-example: value: errors: - status: 403 title: Forbidden detail: Requested method is forbidden for endpoint - GET - /people disabled-temporarily-example: value: errors: - status: 403 title: Forbidden detail: Webhook Create/Update/Delete operations are disabled temporarily. Try again later. '404': description: Unable to find the specified record content: application/vnd.api+json: schema: description: A JSON:API error response body containing one or more errors. type: object properties: errors: type: array items: description: An error type: object properties: id: type: - string - 'null' example: 0fd247d9-a93c-4b48-bde8-247ce352ebcb status: type: integer example: 400 title: type: string example: Error title detail: type: string example: Additional details about the error links: type: object meta: type: object source: type: object examples: not-found-example: value: errors: - status: 404 title: Not Found detail: Requested resource not found. '406': description: Servers respond with a 406 Not Acceptable status code if a request’s Accept header contains the JSON:API media type and all instances of that media type are modified with media type parameters. content: application/vnd.api+json: schema: description: A JSON:API error response body containing one or more errors. type: object properties: errors: type: array items: description: An error type: object properties: id: type: - string - 'null' example: 0fd247d9-a93c-4b48-bde8-247ce352ebcb status: type: integer example: 400 title: type: string example: Error title detail: type: string example: Additional details about the error links: type: object meta: type: object source: type: object examples: not-acceptable-example: value: errors: - status: 406 title: Not Acceptable detail: Request's Accept header contained the JSON:API media type and all instances of that media type were modified with media type parameters. '429': description: The API quota has been exceeded. content: application/vnd.api+json: schema: description: A JSON:API error response body containing one or more errors. type: object properties: errors: type: array items: description: An error type: object properties: id: type: - string - 'null' example: 0fd247d9-a93c-4b48-bde8-247ce352ebcb status: type: integer example: 400 title: type: string example: Error title detail: type: string example: Additional details about the error links: type: object meta: type: object source: type: object examples: not-found-example: value: errors: - status: 429 title: Too Many Requests detail: The quota has been exceeded. '500': description: An unexpected error. content: application/vnd.api+json: schema: description: A JSON:API error response body containing one or more errors. type: object properties: errors: type: array items: description: An error type: object properties: id: type: - string - 'null' example: 0fd247d9-a93c-4b48-bde8-247ce352ebcb status: type: integer example: 400 title: type: string example: Error title detail: type: string example: Additional details about the error links: type: object meta: type: object source: type: object examples: not-found-example: value: errors: - status: 500 title: Internal Server Error detail: Something went wrong in the server-side. servers: - url: https://mock.api.wisc.edu /people/{id}/jobs/{jobId}/costAllocations/{costAllocationId}: get: description: Get a single cost allocations for this job. summary: Get a cost allocation. operationId: get_person_job_cost_allocation tags: - jobs parameters: - name: id description: 'ID of a person. This parameter should not be manually built/concatenated, but instead be used by following the fully-formed links returned in an API response. To get a person by an ID, use query parameters to search by a specific identifier. Example: /people?filter[identifiers.name]=netId&filter[identifiers.value]=bbadger' in: path example: e2118c5a-aae2-4475-a661-bb0592effefa required: true schema: type: string description: An ephemeral identifier used only in the Person API to adhere to the [JSON:API specification](https://jsonapi.org/format/#document-resource-object-identification). This ID may change if a person is split into two people or two people are merged into one person. This ID is used for paginating results or following other links returned in the API response. This ID should not be stored in a consuming system. Concatenating parts of the URL to form a link is discouraged. Instead, use the fully-formed links returned in an API response. - name: jobId description: ID of a job. This parameter should not be manually built/concatenated, but instead be used by following the fully-formed links returned in an API response. in: path example: 8dfe342c-5d6b-4e64-9291-31cb643ae39a required: true schema: type: string description: Ephemeral ID used to adhere to the JSON:API specification. This ID should not be stored. - name: costAllocationId description: ID of a cost allocation. This parameter should not be manually built/concatenated, but instead be used by following the fully-formed links returned in an API response. in: path example: dc82b638-a6ec-4592-9cd8-e91b373284c2 required: true schema: type: string description: Ephemeral ID used to adhere to the JSON:API specification. This ID should not be stored. - name: fields in: query description: Specify the list of fields you would like to return for each resource type. For example, `fields[people]=firstName,lastName` will just return the names for people. If you are including related resources with 'includes' you can also specify fields on those resources as well. For example, `includes=jobs&fields[people]=jobs&fields[jobs]=title` will just return titles for jobs. See [Sparse Fieldsets](https://jsonapi.org/format/#fetching-sparse-fieldsets) for more details. required: false style: deepObject explode: true schema: type: object additionalProperties: false properties: type: type: string example: people - name: filterIncluded in: query description: Filter the resources returned in the `included` section of the response. Refer to the [Person API Documentation](https://kb.wisc.edu/uw-apis/158404#filter-included) for more information about the `filterIncluded` query param. required: false style: deepObject explode: true schema: type: object additionalProperties: false properties: relationship:attribute: type: string example: jobs:title attribute: type: string example: firstName - name: include in: query description: '[include related resources](https://jsonapi.org/format/#fetching-includes) for cost allocations.' schema: type: string enum: - worktags responses: '200': description: A single cost allocations. content: application/vnd.api+json: schema: type: object required: - data - links properties: data: description: A single cost allocations. items: description: Details about a Cost Allocation associated with a job. type: object required: - type - id - attributes - relationships - links properties: type: type: string example: costAllocations id: type: string example: dc82b638-a6ec-4592-9cd8-e91b373284c2 attributes: type: object required: - level - startDate - endDate - current properties: level: description: 'The type of cost allocation based on the earning code. There are 3 Cost Allocations: Position Restriction - default funding. This is to be used when no other cost allocation is listed. Worker Position - Used for Total Base Pay. Worker Position Earnings - Used for lump sum, additional pay, etc.' enum: - Position Restrictions - Worker Position Earning - Worker Position type: string example: Position Restrictions startDate: description: The start date of this cost allocation. type: string format: date example: '2018-01-01' endDate: description: The end date of this cost allocation. type: string format: date example: '2018-01-01' current: type: boolean example: true description: Property that indicates if this cost allocation is current. relationships: type: object required: - job - worktags properties: job: description: A generic relationship object type: object properties: links: type: object properties: related: type: string example: https://api.wisc.edu/link/to/related/object data: type: - object - 'null' properties: type: type: string example: sampleType id: type: string example: sampleId worktags: description: A generic relationship object type: object properties: links: type: object properties: related: type: string example: https://api.wisc.edu/link/to/related/object data: type: array items: type: object properties: type: type: string example: sampleType id: type: string example: sampleId links: description: The link to access a resource itself type: object properties: self: type: string example: https://api.wisc.edu/link/to/self links: description: The link to access a resource itself type: object properties: self: type: string example: https://api.wisc.edu/link/to/self examples: example-costAllocation: value: data: attributes: level: Position Restrictions startDate: '2025-01-01' endDate: '2050-01-01' current: 'true' relationships: jobs: data: id: 01de376e-b08d-4fd7-8553-6664d13f14c0 type: jobs links: related: https://api.wisc.edu/people/e1ebbf76-7df7-4a43-947e-aa3741693db4/jobs/01de376e-b08d-4fd7-8553-6664d13f14c0 worktags: data: - id: 6f1f1014-e6c8-48b2-aba2-6b9000fec5af type: worktags links: related: https://api.wisc.edu/people/e1ebbf76-7df7-4a43-947e-aa3741693db4/jobs/01de376e-b08d-4fd7-8553-6664d13f14c0/costAllocations/dc82b638-a6ec-4592-9cd8-e91b373284c2/worktags id: dc82b638-a6ec-4592-9cd8-e91b373284c2 type: costAllocations links: self: https://api.wisc.edu/people/e1ebbf76-7df7-4a43-947e-aa3741693db4/jobs/01de376e-b08d-4fd7-8553-6664d13f14c0/costAllocations/dc82b638-a6ec-4592-9cd8-e91b373284c2 links: self: https://api.wisc.edu/people/e1ebbf76-7df7-4a43-947e-aa3741693db4/jobs/01de376e-b08d-4fd7-8553-6664d13f14c0/costAllocations/dc82b638-a6ec-4592-9cd8-e91b373284c2 '400': description: A bad request. content: application/vnd.api+json: schema: description: A JSON:API error response body containing one or more errors. type: object properties: errors: type: array items: description: An error type: object properties: id: type: - string - 'null' example: 0fd247d9-a93c-4b48-bde8-247ce352ebcb status: type: integer example: 400 title: type: string example: Error title detail: type: string example: Additional details about the error links: type: object meta: type: object source: type: object examples: application/vnd.api+json: value: errors: - id: 0fd247d9-a93c-4b48-bde8-247ce352ebcb links: {} meta: {} source: {} status: 400 title: Bad Request detail: Invalid properties in query parameters - resource type 'people' has no attribute 'invalid'. '401': description: Incorrect or expired OAuth token. content: application/vnd.api+json: schema: description: A JSON:API error response body containing one or more errors. type: object properties: errors: type: array items: description: An error type: object properties: id: type: - string - 'null' example: 0fd247d9-a93c-4b48-bde8-247ce352ebcb status: type: integer example: 400 title: type: string example: Error title detail: type: string example: Additional details about the error links: type: object meta: type: object source: type: object examples: unauthorized-response: value: errors: - status: 401 title: Unauthorized detail: Invalid OAuth authentication - InvalidAccessToken '403': description: The API call is authenticated but the client isn't allowed to perform the requested operation. This can occur when trying to update a resource when granted read-only access. content: application/vnd.api+json: schema: description: A JSON:API error response body containing one or more errors. type: object properties: errors: type: array items: description: An error type: object properties: id: type: - string - 'null' example: 0fd247d9-a93c-4b48-bde8-247ce352ebcb status: type: integer example: 400 title: type: string example: Error title detail: type: string example: Additional details about the error links: type: object meta: type: object source: type: object examples: name-update-example: value: errors: - status: 403 title: Forbidden detail: Client is not allowed to create, update, or delete a person's name. no-access-example: value: errors: - status: 403 title: Forbidden detail: Requested method is forbidden for endpoint - GET - /people disabled-temporarily-example: value: errors: - status: 403 title: Forbidden detail: Webhook Create/Update/Delete operations are disabled temporarily. Try again later. '404': description: Unable to find the specified record content: application/vnd.api+json: schema: description: A JSON:API error response body containing one or more errors. type: object properties: errors: type: array items: description: An error type: object properties: id: type: - string - 'null' example: 0fd247d9-a93c-4b48-bde8-247ce352ebcb status: type: integer example: 400 title: type: string example: Error title detail: type: string example: Additional details about the error links: type: object meta: type: object source: type: object examples: not-found-example: value: errors: - status: 404 title: Not Found detail: Requested resource not found. '406': description: Servers respond with a 406 Not Acceptable status code if a request’s Accept header contains the JSON:API media type and all instances of that media type are modified with media type parameters. content: application/vnd.api+json: schema: description: A JSON:API error response body containing one or more errors. type: object properties: errors: type: array items: description: An error type: object properties: id: type: - string - 'null' example: 0fd247d9-a93c-4b48-bde8-247ce352ebcb status: type: integer example: 400 title: type: string example: Error title detail: type: string example: Additional details about the error links: type: object meta: type: object source: type: object examples: not-acceptable-example: value: errors: - status: 406 title: Not Acceptable detail: Request's Accept header contained the JSON:API media type and all instances of that media type were modified with media type parameters. '429': description: The API quota has been exceeded. content: application/vnd.api+json: schema: description: A JSON:API error response body containing one or more errors. type: object properties: errors: type: array items: description: An error type: object properties: id: type: - string - 'null' example: 0fd247d9-a93c-4b48-bde8-247ce352ebcb status: type: integer example: 400 title: type: string example: Error title detail: type: string example: Additional details about the error links: type: object meta: type: object source: type: object examples: not-found-example: value: errors: - status: 429 title: Too Many Requests detail: The quota has been exceeded. '500': description: An unexpected error. content: application/vnd.api+json: schema: description: A JSON:API error response body containing one or more errors. type: object properties: errors: type: array items: description: An error type: object properties: id: type: - string - 'null' example: 0fd247d9-a93c-4b48-bde8-247ce352ebcb status: type: integer example: 400 title: type: string example: Error title detail: type: string example: Additional details about the error links: type: object meta: type: object source: type: object examples: not-found-example: value: errors: - status: 500 title: Internal Server Error detail: Something went wrong in the server-side. servers: - url: https://mock.api.wisc.edu /people/{id}/jobs/{jobId}/costAllocations/{costAllocationId}/worktags: get: description: Get a collection of worktags for this cost allocation. summary: Get worktags. operationId: get_person_job_cost_allocation_worktag tags: - jobs parameters: - name: id description: 'ID of a person. This parameter should not be manually built/concatenated, but instead be used by following the fully-formed links returned in an API response. To get a person by an ID, use query parameters to search by a specific identifier. Example: /people?filter[identifiers.name]=netId&filter[identifiers.value]=bbadger' in: path example: e2118c5a-aae2-4475-a661-bb0592effefa required: true schema: type: string description: An ephemeral identifier used only in the Person API to adhere to the [JSON:API specification](https://jsonapi.org/format/#document-resource-object-identification). This ID may change if a person is split into two people or two people are merged into one person. This ID is used for paginating results or following other links returned in the API response. This ID should not be stored in a consuming system. Concatenating parts of the URL to form a link is discouraged. Instead, use the fully-formed links returned in an API response. - name: jobId description: ID of a job. This parameter should not be manually built/concatenated, but instead be used by following the fully-formed links returned in an API response. in: path example: 8dfe342c-5d6b-4e64-9291-31cb643ae39a required: true schema: type: string description: Ephemeral ID used to adhere to the JSON:API specification. This ID should not be stored. - name: costAllocationId description: ID of a cost allocation. This parameter should not be manually built/concatenated, but instead be used by following the fully-formed links returned in an API response. in: path example: dc82b638-a6ec-4592-9cd8-e91b373284c2 required: true schema: type: string description: Ephemeral ID used to adhere to the JSON:API specification. This ID should not be stored. - name: fields in: query description: Specify the list of fields you would like to return for each resource type. For example, `fields[people]=firstName,lastName` will just return the names for people. If you are including related resources with 'includes' you can also specify fields on those resources as well. For example, `includes=jobs&fields[people]=jobs&fields[jobs]=title` will just return titles for jobs. See [Sparse Fieldsets](https://jsonapi.org/format/#fetching-sparse-fieldsets) for more details. required: false style: deepObject explode: true schema: type: object additionalProperties: false properties: type: type: string example: people - name: advancedFilter in: query description: Filter results of query using the [Advanced Filter](https://kb.wisc.edu/uw-apis/158404#advanced-filters). required: false style: deepObject explode: true schema: type: object additionalProperties: false properties: attribute: type: string example: and(equals(firstName, "John"), equals(lastName, "Doe")) - name: filter[worktagType] in: query required: false description: Filter results using the [filter query parameter family](https://jsonapi.org/recommendations/#filtering). Refer to the [Person API Documentation](https://kb.wisc.edu/uw-apis/158404) for more information. Filter `worktags` resources by `worktagType`. schema: type: - string - 'null' - name: filter[name] in: query required: false description: Filter results using the [filter query parameter family](https://jsonapi.org/recommendations/#filtering). Refer to the [Person API Documentation](https://kb.wisc.edu/uw-apis/158404) for more information. Filter `worktags` resources by `name`. schema: type: - string - 'null' responses: '200': description: A collection of worktags. content: application/vnd.api+json: schema: type: object required: - data - links properties: data: description: A collection of worktags. type: array items: description: Details about a Worktag associated with a Cost Allocation. type: object required: - type - id - attributes - relationships properties: type: type: string example: costAllocations id: type: string example: dc82b638-a6ec-4592-9cd8-e91b373284c2 attributes: type: object required: - worktagType - name properties: worktagType: description: The type of this worktag. type: string enum: - Gift - Grant - Program - Project example: Gift name: description: The name of this worktag. type: string example: GR000036316 UWMSN | YR 1- Hatch Startup W5001 (AAN8396) relationships: type: object required: - costAllocation properties: costAllocation: description: A generic relationship object type: object properties: links: type: object properties: related: type: string example: https://api.wisc.edu/link/to/related/object data: type: - object - 'null' properties: type: type: string example: sampleType id: type: string example: sampleId links: description: The link to access a resource itself type: object properties: self: type: string example: https://api.wisc.edu/link/to/self examples: example-worktags: value: data: - attributes: worktagType: Grant name: GR000036316 UWMSN | YR 1- Hatch Startup W5001 (AAN8396) relationships: costAllocation: data: id: dc82b638-a6ec-4592-9cd8-e91b373284c2 type: costAllocations links: related: https://api.wisc.edu/people/e1ebbf76-7df7-4a43-947e-aa3741693db4/jobs/01de376e-b08d-4fd7-8553-6664d13f14c0/costAllocations/dc82b638-a6ec-4592-9cd8-e91b373284c2 id: 6f1f1014-e6c8-48b2-aba2-6b9000fec5af type: worktags - attributes: worktagType: Gift name: GF000009831 UWMSN | CALS | Biological Sciences Fellowship (Genetics) relationships: costAllocation: data: id: dc82b638-a6ec-4592-9cd8-e91b373284c2 type: costAllocations links: related: https://api.wisc.edu/people/e1ebbf76-7df7-4a43-947e-aa3741693db4/jobs/01de376e-b08d-4fd7-8553-6664d13f14c0/costAllocations/dc82b638-a6ec-4592-9cd8-e91b373284c2 id: 6029011a-dd8d-475c-ba9a-8082d4d23c6c type: worktags - attributes: worktagType: Program name: PG000004863 UWSYS | OPLR | Student Recruitment relationships: costAllocation: data: id: dc82b638-a6ec-4592-9cd8-e91b373284c2 type: costAllocations links: related: https://api.wisc.edu/people/e1ebbf76-7df7-4a43-947e-aa3741693db4/jobs/01de376e-b08d-4fd7-8553-6664d13f14c0/costAllocations/dc82b638-a6ec-4592-9cd8-e91b373284c2 id: 1a2ffbb0-5529-4cd9-a6fa-889e37ec3013 type: worktags - attributes: worktagType: Project name: PJ000005839 UWMSN | L&S | 2024-25 Fall Competition Award (Sardis Expedition Project Assistant) relationships: costAllocation: data: id: dc82b638-a6ec-4592-9cd8-e91b373284c2 type: costAllocations links: related: https://api.wisc.edu/people/e1ebbf76-7df7-4a43-947e-aa3741693db4/jobs/01de376e-b08d-4fd7-8553-6664d13f14c0/costAllocations/dc82b638-a6ec-4592-9cd8-e91b373284c2 id: aa59a948-6863-4a53-b256-c8281b786d3c type: worktags links: self: https://api.wisc.edu/people/e1ebbf76-7df7-4a43-947e-aa3741693db4/jobs/01de376e-b08d-4fd7-8553-6664d13f14c0/costAllocations/dc82b638-a6ec-4592-9cd8-e91b373284c2/worktags '400': description: A bad request. content: application/vnd.api+json: schema: description: A JSON:API error response body containing one or more errors. type: object properties: errors: type: array items: description: An error type: object properties: id: type: - string - 'null' example: 0fd247d9-a93c-4b48-bde8-247ce352ebcb status: type: integer example: 400 title: type: string example: Error title detail: type: string example: Additional details about the error links: type: object meta: type: object source: type: object examples: application/vnd.api+json: value: errors: - id: 0fd247d9-a93c-4b48-bde8-247ce352ebcb links: {} meta: {} source: {} status: 400 title: Bad Request detail: Invalid properties in query parameters - resource type 'people' has no attribute 'invalid'. '401': description: Incorrect or expired OAuth token. content: application/vnd.api+json: schema: description: A JSON:API error response body containing one or more errors. type: object properties: errors: type: array items: description: An error type: object properties: id: type: - string - 'null' example: 0fd247d9-a93c-4b48-bde8-247ce352ebcb status: type: integer example: 400 title: type: string example: Error title detail: type: string example: Additional details about the error links: type: object meta: type: object source: type: object examples: unauthorized-response: value: errors: - status: 401 title: Unauthorized detail: Invalid OAuth authentication - InvalidAccessToken '403': description: The API call is authenticated but the client isn't allowed to perform the requested operation. This can occur when trying to update a resource when granted read-only access. content: application/vnd.api+json: schema: description: A JSON:API error response body containing one or more errors. type: object properties: errors: type: array items: description: An error type: object properties: id: type: - string - 'null' example: 0fd247d9-a93c-4b48-bde8-247ce352ebcb status: type: integer example: 400 title: type: string example: Error title detail: type: string example: Additional details about the error links: type: object meta: type: object source: type: object examples: name-update-example: value: errors: - status: 403 title: Forbidden detail: Client is not allowed to create, update, or delete a person's name. no-access-example: value: errors: - status: 403 title: Forbidden detail: Requested method is forbidden for endpoint - GET - /people disabled-temporarily-example: value: errors: - status: 403 title: Forbidden detail: Webhook Create/Update/Delete operations are disabled temporarily. Try again later. '404': description: Unable to find the specified record content: application/vnd.api+json: schema: description: A JSON:API error response body containing one or more errors. type: object properties: errors: type: array items: description: An error type: object properties: id: type: - string - 'null' example: 0fd247d9-a93c-4b48-bde8-247ce352ebcb status: type: integer example: 400 title: type: string example: Error title detail: type: string example: Additional details about the error links: type: object meta: type: object source: type: object examples: not-found-example: value: errors: - status: 404 title: Not Found detail: Requested resource not found. '406': description: Servers respond with a 406 Not Acceptable status code if a request’s Accept header contains the JSON:API media type and all instances of that media type are modified with media type parameters. content: application/vnd.api+json: schema: description: A JSON:API error response body containing one or more errors. type: object properties: errors: type: array items: description: An error type: object properties: id: type: - string - 'null' example: 0fd247d9-a93c-4b48-bde8-247ce352ebcb status: type: integer example: 400 title: type: string example: Error title detail: type: string example: Additional details about the error links: type: object meta: type: object source: type: object examples: not-acceptable-example: value: errors: - status: 406 title: Not Acceptable detail: Request's Accept header contained the JSON:API media type and all instances of that media type were modified with media type parameters. '429': description: The API quota has been exceeded. content: application/vnd.api+json: schema: description: A JSON:API error response body containing one or more errors. type: object properties: errors: type: array items: description: An error type: object properties: id: type: - string - 'null' example: 0fd247d9-a93c-4b48-bde8-247ce352ebcb status: type: integer example: 400 title: type: string example: Error title detail: type: string example: Additional details about the error links: type: object meta: type: object source: type: object examples: not-found-example: value: errors: - status: 429 title: Too Many Requests detail: The quota has been exceeded. '500': description: An unexpected error. content: application/vnd.api+json: schema: description: A JSON:API error response body containing one or more errors. type: object properties: errors: type: array items: description: An error type: object properties: id: type: - string - 'null' example: 0fd247d9-a93c-4b48-bde8-247ce352ebcb status: type: integer example: 400 title: type: string example: Error title detail: type: string example: Additional details about the error links: type: object meta: type: object source: type: object examples: not-found-example: value: errors: - status: 500 title: Internal Server Error detail: Something went wrong in the server-side. servers: - url: https://mock.api.wisc.edu components: securitySchemes: OAuth2ClientCredentials: type: oauth2 flows: clientCredentials: tokenUrl: https://api.wisc.edu/oauth/token scopes: {} externalDocs: description: Read more about JSON:API here url: https://jsonapi.org/ x-refined-from: - university-of-wisconsin-madison-mock-person-api-certificates-openapi.yml - university-of-wisconsin-madison-mock-person-api-openapi.yml - university-of-wisconsin-madison-person-api-openapi.yml x-operator: institution x-provenance: generated: '2026-08-19' method: probed source: https://public.enroll.wisc.edu/api/search/v1 note: 'Reverse-described from live unauthenticated responses. Not a UW-Madison publication and must never be counted as one. Probes: GET /terms (200, 499 bytes, 2 terms), GET /aggregate (200, 127,065 bytes), POST / (200, term 1266 "computer science" -> found=226; term 1272 -> found=932).'