openapi: 3.2.0 info: title: University Of Wisconsin Madison Webhooks 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 webhooks 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: webhooks paths: /people/webhooks: get: description: Get a collection of webhooks. Refer to the [Webhooks Documentation](/person-api/webhooks) for more information. summary: Get webhooks. operationId: get_webhooks tags: - webhooks responses: '200': description: A collection of webhooks. content: application/vnd.api+json: schema: type: object required: - data - links properties: data: description: A collection of webhooks. type: array items: description: A webhook represents the configuration for an application to subscribe to events from the Person API. Webhook events are HTTP requests that will be sent to a server when data changes about a person. Refer to the [Webhooks Documentation](/person-api/webhooks) for more information. type: object required: - type - id - attributes - links - relationships properties: type: type: string example: webhooks id: type: string description: An identifier used to identify non-person resources, such as Certificates and Webhooks. This ID is used for following other links returned in the API response. Concatenating parts of the URL to form a link is discouraged. Instead, use the fully-formed links returned in an API response. example: b463e0f7-c882-4b08-a9c7-e0a2fd90d04b attributes: type: object required: - url - expired properties: url: type: string format: url example: https://department.wisc.edu/person-api-webhook description: URL that accepts Person API webhook events. This URL must use HTTPS. token: type: string readOnly: true description: A secret token sent with each webhook event. A server must verify this token when receiving a webhook from the Person API to ensure it is authenticate. This token is only returned when creating a webhook and cannot be set by the client. It cannot be retrieved again in future requests. expired: type: boolean readOnly: false description: Indicates whether the webhook subscription has expired. This value can be set to false to un-expire a webhook but can not be set to true to expire it. links: description: The link to access a resource itself type: object properties: self: type: string example: https://api.wisc.edu/link/to/self relationships: type: object required: - replay - webhookFilters - webhookRelationshipFilters properties: replay: 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 webhookFilters: 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 webhookRelationshipFilters: 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 examples: example-webhooks: value: data: - attributes: url: https://department.wisc.edu/person-api-webhook expired: false id: '100' links: self: https://api.wisc.edu/people/webhooks/100 type: webhooks relationships: replay: links: related: https://api.wisc.edu/people/webhooks/100/replay webhookFilters: data: [] links: related: https://api.wisc.edu/people/webhooks/100/filters webhookRelationshipFilters: data: [] links: related: https://api.wisc.edu/people/webhooks/100/relationshipFilters links: self: https://api.wisc.edu/people/webhooks '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 '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. post: description: Create a webhook. A maximum of 5 webhooks per Developer Portal application are allowed. Refer to the [Webhooks Documentation](/person-api/webhooks) for more information. summary: Create a webhook. operationId: create_webhook tags: - webhooks requestBody: description: A webhook request body. required: true content: application/vnd.api+json: schema: type: object required: - data properties: data: type: object required: - type - attributes properties: type: type: string example: webhooks enum: - webhooks attributes: type: object properties: url: type: string format: url example: https://department.wisc.edu/person-api-webhook description: URL that accepts Person API webhook events. This URL must use HTTPS. expired: type: boolean example: false description: Indicates whether the webhook subscription has expired. This value can be set to false to un-expire a webhook but can not be set to true to expire it. responses: '201': description: A single just created webhook. content: application/vnd.api+json: schema: type: object required: - data - links properties: data: description: A webhook represents the configuration for an application to subscribe to events from the Person API. Webhook events are HTTP requests that will be sent to a server when data changes about a person. Refer to the [Webhooks Documentation](/person-api/webhooks) for more information. type: object required: - type - id - attributes - links - relationships properties: type: type: string example: webhooks id: type: string description: An identifier used to identify non-person resources, such as Certificates and Webhooks. This ID is used for following other links returned in the API response. Concatenating parts of the URL to form a link is discouraged. Instead, use the fully-formed links returned in an API response. example: b463e0f7-c882-4b08-a9c7-e0a2fd90d04b attributes: type: object required: - url - expired properties: url: type: string format: url example: https://department.wisc.edu/person-api-webhook description: URL that accepts Person API webhook events. This URL must use HTTPS. token: type: string readOnly: true description: A secret token sent with each webhook event. A server must verify this token when receiving a webhook from the Person API to ensure it is authenticate. This token is only returned when creating a webhook and cannot be set by the client. It cannot be retrieved again in future requests. expired: type: boolean readOnly: false description: Indicates whether the webhook subscription has expired. This value can be set to false to un-expire a webhook but can not be set to true to expire it. links: description: The link to access a resource itself type: object properties: self: type: string example: https://api.wisc.edu/link/to/self relationships: type: object required: - replay - webhookFilters - webhookRelationshipFilters properties: replay: 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 webhookFilters: 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 webhookRelationshipFilters: 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 examples: example-webhook: value: data: attributes: url: https://department.wisc.edu/person-api-webhook token: 16f6f440-7317-41f2-9239-6207519b3ad0 expired: false id: '100' links: self: https://api.wisc.edu/people/webhooks/100 type: webhooks relationships: replay: links: related: https://api.wisc.edu/people/webhooks/100/replay webhookFilters: data: [] links: related: https://api.wisc.edu/people/webhooks/100/filters webhookRelationshipFilters: data: [] links: related: https://api.wisc.edu/people/webhooks/100/relationshipFilters links: self: https://api.wisc.edu/people/webhooks/100 '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 '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. '415': description: 'Request includes a body but not the valid JSON API Content-Type header: application/vnd.api+json' 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: unsupported-media-type-example: value: errors: - status: 415 title: Unsupported Media Type detail: Requests with a body must include the Content-Type header with a value of application/vnd.api+json '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/webhooks/{webhookId}: get: description: Get a single webhook. Refer to the [Webhooks Documentation](/person-api/webhooks) for more information. summary: Get a webhook. operationId: get_webhook tags: - webhooks parameters: - name: webhookId description: ID of a webhook. 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: b463e0f7-c882-4b08-a9c7-e0a2fd90d04b required: true schema: type: string description: An identifier used to identify non-person resources, such as Certificates and Webhooks. This ID is used for following other links returned in the API response. Concatenating parts of the URL to form a link is discouraged. Instead, use the fully-formed links returned in an API response. example: b463e0f7-c882-4b08-a9c7-e0a2fd90d04b responses: '200': description: A single webhook. content: application/vnd.api+json: schema: type: object required: - data - links properties: data: description: A webhook represents the configuration for an application to subscribe to events from the Person API. Webhook events are HTTP requests that will be sent to a server when data changes about a person. Refer to the [Webhooks Documentation](/person-api/webhooks) for more information. type: object required: - type - id - attributes - links - relationships properties: type: type: string example: webhooks id: type: string description: An identifier used to identify non-person resources, such as Certificates and Webhooks. This ID is used for following other links returned in the API response. Concatenating parts of the URL to form a link is discouraged. Instead, use the fully-formed links returned in an API response. example: b463e0f7-c882-4b08-a9c7-e0a2fd90d04b attributes: type: object required: - url - expired properties: url: type: string format: url example: https://department.wisc.edu/person-api-webhook description: URL that accepts Person API webhook events. This URL must use HTTPS. token: type: string readOnly: true description: A secret token sent with each webhook event. A server must verify this token when receiving a webhook from the Person API to ensure it is authenticate. This token is only returned when creating a webhook and cannot be set by the client. It cannot be retrieved again in future requests. expired: type: boolean readOnly: false description: Indicates whether the webhook subscription has expired. This value can be set to false to un-expire a webhook but can not be set to true to expire it. links: description: The link to access a resource itself type: object properties: self: type: string example: https://api.wisc.edu/link/to/self relationships: type: object required: - replay - webhookFilters - webhookRelationshipFilters properties: replay: 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 webhookFilters: 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 webhookRelationshipFilters: 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 examples: example-webhook: value: data: attributes: url: https://department.wisc.edu/person-api-webhook expired: false id: '100' links: self: https://api.wisc.edu/people/webhooks/100 type: webhooks relationships: replay: links: related: https://api.wisc.edu/people/webhooks/100/replay webhookFilters: data: [] links: related: https://api.wisc.edu/people/webhooks/100/filters webhookRelationshipFilters: data: [] links: related: https://api.wisc.edu/people/webhooks/100/relationshipFilters links: self: https://api.wisc.edu/people/webhooks/100 '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. patch: description: Update a webhook. Refer to the [Webhooks Documentation](/person-api/webhooks) for more information. summary: Update a webhook. operationId: update_webhook tags: - webhooks parameters: - name: webhookId description: ID of a webhook. 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: b463e0f7-c882-4b08-a9c7-e0a2fd90d04b required: true schema: type: string description: An identifier used to identify non-person resources, such as Certificates and Webhooks. This ID is used for following other links returned in the API response. Concatenating parts of the URL to form a link is discouraged. Instead, use the fully-formed links returned in an API response. example: b463e0f7-c882-4b08-a9c7-e0a2fd90d04b requestBody: description: A webhook request body. required: true content: application/vnd.api+json: schema: type: object properties: data: type: object required: - type - id properties: type: type: string example: webhooks enum: - webhooks id: type: string description: An identifier used to identify non-person resources, such as Certificates and Webhooks. This ID is used for following other links returned in the API response. Concatenating parts of the URL to form a link is discouraged. Instead, use the fully-formed links returned in an API response. example: b463e0f7-c882-4b08-a9c7-e0a2fd90d04b attributes: type: object properties: url: type: string format: url example: https://department.wisc.edu/person-api-webhook description: URL that accepts Person API webhook events. This URL must use HTTPS. expired: type: boolean example: false description: Indicates whether the webhook subscription has expired. This value can be set to false to un-expire a webhook but can not be set to true to expire it. responses: '200': description: A single webhook. content: application/vnd.api+json: schema: type: object required: - data - links properties: data: description: A webhook represents the configuration for an application to subscribe to events from the Person API. Webhook events are HTTP requests that will be sent to a server when data changes about a person. Refer to the [Webhooks Documentation](/person-api/webhooks) for more information. type: object required: - type - id - attributes - links - relationships properties: type: type: string example: webhooks id: type: string description: An identifier used to identify non-person resources, such as Certificates and Webhooks. This ID is used for following other links returned in the API response. Concatenating parts of the URL to form a link is discouraged. Instead, use the fully-formed links returned in an API response. example: b463e0f7-c882-4b08-a9c7-e0a2fd90d04b attributes: type: object required: - url - expired properties: url: type: string format: url example: https://department.wisc.edu/person-api-webhook description: URL that accepts Person API webhook events. This URL must use HTTPS. token: type: string readOnly: true description: A secret token sent with each webhook event. A server must verify this token when receiving a webhook from the Person API to ensure it is authenticate. This token is only returned when creating a webhook and cannot be set by the client. It cannot be retrieved again in future requests. expired: type: boolean readOnly: false description: Indicates whether the webhook subscription has expired. This value can be set to false to un-expire a webhook but can not be set to true to expire it. links: description: The link to access a resource itself type: object properties: self: type: string example: https://api.wisc.edu/link/to/self relationships: type: object required: - replay - webhookFilters - webhookRelationshipFilters properties: replay: 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 webhookFilters: 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 webhookRelationshipFilters: 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 examples: example-webhook: value: data: attributes: url: https://department.wisc.edu/person-api-webhook expired: false id: '100' links: self: https://api.wisc.edu/people/webhooks/100 type: webhooks relationships: replay: links: related: https://api.wisc.edu/people/webhooks/100/replay webhookFilters: data: [] links: related: https://api.wisc.edu/people/webhooks/100/filters webhookRelationshipFilters: data: [] links: related: https://api.wisc.edu/people/webhooks/100/relationshipFilters links: self: https://api.wisc.edu/people/webhooks/100 '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. '415': description: 'Request includes a body but not the valid JSON API Content-Type header: application/vnd.api+json' 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: unsupported-media-type-example: value: errors: - status: 415 title: Unsupported Media Type detail: Requests with a body must include the Content-Type header with a value of application/vnd.api+json '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. delete: description: Delete a webhook. Refer to the [Webhooks Documentation](/person-api/webhooks) for more information. summary: Delete a webhook. operationId: delete_webhook tags: - webhooks parameters: - name: webhookId description: ID of a webhook. 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: b463e0f7-c882-4b08-a9c7-e0a2fd90d04b required: true schema: type: string description: An identifier used to identify non-person resources, such as Certificates and Webhooks. This ID is used for following other links returned in the API response. Concatenating parts of the URL to form a link is discouraged. Instead, use the fully-formed links returned in an API response. example: b463e0f7-c882-4b08-a9c7-e0a2fd90d04b responses: '204': description: Webhook deleted. Empty response. '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/webhooks/{webhookId}/replay: post: description: Replay events for a webhook. Refer to the [Webhooks Documentation](/person-api/webhooks) for more information. summary: Replay events. operationId: replay_events_for_webhook tags: - webhooks parameters: - name: webhookId description: ID of a webhook. 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: b463e0f7-c882-4b08-a9c7-e0a2fd90d04b required: true schema: type: string description: An identifier used to identify non-person resources, such as Certificates and Webhooks. This ID is used for following other links returned in the API response. Concatenating parts of the URL to form a link is discouraged. Instead, use the fully-formed links returned in an API response. example: b463e0f7-c882-4b08-a9c7-e0a2fd90d04b requestBody: description: A webhook replay request body. required: true content: application/vnd.api+json: schema: type: object properties: data: type: object required: - type - attributes properties: type: type: string example: replay enum: - replay attributes: type: object required: - replayFromTime properties: replayFromTime: type: string format: date-time example: '2019-01-01T00:00:00Z' description: 'The time to start replaying events from. This is an ISO 8601 date-time with the following format: `YYYY-MM-DDTHH:MM:SSZ`. The time must be in UTC.' responses: '202': description: Webhook replayed. Empty response. '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/webhooks/{webhookId}/filters: get: description: Get all filters for a webhook. Refer to the [Webhooks Documentation](/person-api/webhooks) for more information. summary: Get all filters for a webhook. operationId: get_all_filters_for_webhook tags: - webhooks parameters: - name: webhookId description: ID of a webhook. 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: b463e0f7-c882-4b08-a9c7-e0a2fd90d04b required: true schema: type: string description: An identifier used to identify non-person resources, such as Certificates and Webhooks. This ID is used for following other links returned in the API response. Concatenating parts of the URL to form a link is discouraged. Instead, use the fully-formed links returned in an API response. example: b463e0f7-c882-4b08-a9c7-e0a2fd90d04b responses: '200': description: A collection of webhook filters. content: application/vnd.api+json: schema: type: object required: - data - links properties: data: description: A collection of webhook filters. type: array items: description: A webhook filter allows applications to specify who they will receive webhook events for. Refer to the [Webhooks Documentation](/person-api/webhooks) for more information. type: object required: - type - id - attributes - links properties: type: type: string example: webhookFilters id: type: string description: An identifier used to identify non-person resources, such as Certificates and Webhooks. This ID is used for following other links returned in the API response. Concatenating parts of the URL to form a link is discouraged. Instead, use the fully-formed links returned in an API response. example: b463e0f7-c882-4b08-a9c7-e0a2fd90d04b attributes: type: object description: Attributes for a filter object when creating a webhook filter (/people/webhooks/{webhookId}/filters) or an export filter (/people/exports). required: - attribute - values properties: attribute: type: string example: jobs.divisionCode description: A valid attribute or relationship attribute on the people resource. operator: type: string example: STARTS_WITH enum: - STARTS_WITH - ENDS_WITH - CONTAINS - EQUALS - IN description: The comparison to be performed on the values. values: type: array items: type: string example: - A192 - A193 description: A list of values to compare against. Values are required and must be a list of up to 10 non-empty strings. For non-string fields, such as booleans, provide their string equivalents (e.g. "true"). relationships: type: object required: - webhook properties: webhook: 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 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-webhookFilters: value: data: - attributes: attribute: firstName operator: STARTS_WITH values: - Ben - Ber - Bel - Bes id: '123' links: self: https://api.wisc.edu/people/webhooks/100/filters/123 relationships: webhook: data: id: '100' type: webhooks links: related: https://api.wisc.edu/people/webhooks/100 type: webhookFilters links: self: https://api.wisc.edu/people/webhooks/100/filters '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 '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. post: description: Create a filter for a webhook. Refer to the [Webhooks Documentation](/person-api/webhooks) for more information. summary: Create a filter for a webhook. operationId: create_filter_for_webhook tags: - webhooks parameters: - name: webhookId description: ID of a webhook. 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: b463e0f7-c882-4b08-a9c7-e0a2fd90d04b required: true schema: type: string description: An identifier used to identify non-person resources, such as Certificates and Webhooks. This ID is used for following other links returned in the API response. Concatenating parts of the URL to form a link is discouraged. Instead, use the fully-formed links returned in an API response. example: b463e0f7-c882-4b08-a9c7-e0a2fd90d04b requestBody: description: A webhook filter request body. required: true content: application/vnd.api+json: schema: type: object properties: data: type: object required: - type - attributes properties: type: type: string example: webhookFilters enum: - webhookFilters attributes: type: object description: Attributes for a filter object when creating a webhook filter (/people/webhooks/{webhookId}/filters) or an export filter (/people/exports). required: - attribute - values properties: attribute: type: string example: jobs.divisionCode description: A valid attribute or relationship attribute on the people resource. operator: type: string example: STARTS_WITH enum: - STARTS_WITH - ENDS_WITH - CONTAINS - EQUALS - IN description: The comparison to be performed on the values. values: type: array items: type: string example: - A192 - A193 description: A list of values to compare against. Values are required and must be a list of up to 10 non-empty strings. For non-string fields, such as booleans, provide their string equivalents (e.g. "true"). responses: '201': description: A single webhook filter. content: application/vnd.api+json: schema: type: object required: - data - links properties: data: description: A webhook filter allows applications to specify who they will receive webhook events for. Refer to the [Webhooks Documentation](/person-api/webhooks) for more information. type: object required: - type - id - attributes - links properties: type: type: string example: webhookFilters id: type: string description: An identifier used to identify non-person resources, such as Certificates and Webhooks. This ID is used for following other links returned in the API response. Concatenating parts of the URL to form a link is discouraged. Instead, use the fully-formed links returned in an API response. example: b463e0f7-c882-4b08-a9c7-e0a2fd90d04b attributes: type: object description: Attributes for a filter object when creating a webhook filter (/people/webhooks/{webhookId}/filters) or an export filter (/people/exports). required: - attribute - values properties: attribute: type: string example: jobs.divisionCode description: A valid attribute or relationship attribute on the people resource. operator: type: string example: STARTS_WITH enum: - STARTS_WITH - ENDS_WITH - CONTAINS - EQUALS - IN description: The comparison to be performed on the values. values: type: array items: type: string example: - A192 - A193 description: A list of values to compare against. Values are required and must be a list of up to 10 non-empty strings. For non-string fields, such as booleans, provide their string equivalents (e.g. "true"). relationships: type: object required: - webhook properties: webhook: 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 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-webhookFilter: value: data: attributes: attribute: firstName operator: STARTS_WITH values: - Ben - Ber - Bel - Bes id: '123' links: self: https://api.wisc.edu/people/webhooks/100/filters/123 relationships: webhook: data: id: '100' type: webhooks links: related: https://api.wisc.edu/people/webhooks/100 type: webhookFilters links: self: https://api.wisc.edu/people/webhooks/100/filters '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. '415': description: 'Request includes a body but not the valid JSON API Content-Type header: application/vnd.api+json' 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: unsupported-media-type-example: value: errors: - status: 415 title: Unsupported Media Type detail: Requests with a body must include the Content-Type header with a value of application/vnd.api+json '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/webhooks/{webhookId}/filters/{filterId}: get: description: Get a filter for a webhook. Refer to the [Webhooks Documentation](/person-api/webhooks) for more information. summary: Get a filter for a webhook. operationId: get_filter_for_webhook tags: - webhooks parameters: - name: webhookId description: ID of a webhook. 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: b463e0f7-c882-4b08-a9c7-e0a2fd90d04b required: true schema: type: string description: An identifier used to identify non-person resources, such as Certificates and Webhooks. This ID is used for following other links returned in the API response. Concatenating parts of the URL to form a link is discouraged. Instead, use the fully-formed links returned in an API response. example: b463e0f7-c882-4b08-a9c7-e0a2fd90d04b - name: filterId description: ID of a webhook filter. 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: b463e0f7-c882-4b08-a9c7-e0a2fd90d04b required: true schema: type: string description: An identifier used to identify non-person resources, such as Certificates and Webhooks. This ID is used for following other links returned in the API response. Concatenating parts of the URL to form a link is discouraged. Instead, use the fully-formed links returned in an API response. example: b463e0f7-c882-4b08-a9c7-e0a2fd90d04b responses: '200': description: A single webhook filter. content: application/vnd.api+json: schema: type: object required: - data - links properties: data: description: A webhook filter allows applications to specify who they will receive webhook events for. Refer to the [Webhooks Documentation](/person-api/webhooks) for more information. type: object required: - type - id - attributes - links properties: type: type: string example: webhookFilters id: type: string description: An identifier used to identify non-person resources, such as Certificates and Webhooks. This ID is used for following other links returned in the API response. Concatenating parts of the URL to form a link is discouraged. Instead, use the fully-formed links returned in an API response. example: b463e0f7-c882-4b08-a9c7-e0a2fd90d04b attributes: type: object description: Attributes for a filter object when creating a webhook filter (/people/webhooks/{webhookId}/filters) or an export filter (/people/exports). required: - attribute - values properties: attribute: type: string example: jobs.divisionCode description: A valid attribute or relationship attribute on the people resource. operator: type: string example: STARTS_WITH enum: - STARTS_WITH - ENDS_WITH - CONTAINS - EQUALS - IN description: The comparison to be performed on the values. values: type: array items: type: string example: - A192 - A193 description: A list of values to compare against. Values are required and must be a list of up to 10 non-empty strings. For non-string fields, such as booleans, provide their string equivalents (e.g. "true"). relationships: type: object required: - webhook properties: webhook: 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 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-webhookFilter: value: data: attributes: attribute: firstName operator: STARTS_WITH values: - Ben - Ber - Bel - Bes id: '123' links: self: https://api.wisc.edu/people/webhooks/100/filters/123 relationships: webhook: data: id: '100' type: webhooks links: related: https://api.wisc.edu/people/webhooks/100 type: webhookFilters links: self: https://api.wisc.edu/people/webhooks/100/filters '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. patch: description: Update a filter for a webhook. Refer to the [Webhooks Documentation](/person-api/webhooks) for more information. summary: Update a filter for a webhook. operationId: update_filter_for_webhook tags: - webhooks parameters: - name: webhookId description: ID of a webhook. 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: b463e0f7-c882-4b08-a9c7-e0a2fd90d04b required: true schema: type: string description: An identifier used to identify non-person resources, such as Certificates and Webhooks. This ID is used for following other links returned in the API response. Concatenating parts of the URL to form a link is discouraged. Instead, use the fully-formed links returned in an API response. example: b463e0f7-c882-4b08-a9c7-e0a2fd90d04b - name: filterId description: ID of a webhook filter. 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: b463e0f7-c882-4b08-a9c7-e0a2fd90d04b required: true schema: type: string description: An identifier used to identify non-person resources, such as Certificates and Webhooks. This ID is used for following other links returned in the API response. Concatenating parts of the URL to form a link is discouraged. Instead, use the fully-formed links returned in an API response. example: b463e0f7-c882-4b08-a9c7-e0a2fd90d04b requestBody: description: A webhook filter request body. required: true content: application/vnd.api+json: schema: type: object properties: data: type: object required: - type properties: type: type: string example: webhookFilters enum: - webhookFilters id: type: string description: An identifier used to identify non-person resources, such as Certificates and Webhooks. This ID is used for following other links returned in the API response. Concatenating parts of the URL to form a link is discouraged. Instead, use the fully-formed links returned in an API response. example: b463e0f7-c882-4b08-a9c7-e0a2fd90d04b attributes: type: object description: Attributes for a filter object when creating a webhook filter (/people/webhooks/{webhookId}/filters) or an export filter (/people/exports). required: - attribute - values properties: attribute: type: string example: jobs.divisionCode description: A valid attribute or relationship attribute on the people resource. operator: type: string example: STARTS_WITH enum: - STARTS_WITH - ENDS_WITH - CONTAINS - EQUALS - IN description: The comparison to be performed on the values. values: type: array items: type: string example: - A192 - A193 description: A list of values to compare against. Values are required and must be a list of up to 10 non-empty strings. For non-string fields, such as booleans, provide their string equivalents (e.g. "true"). responses: '200': description: A single webhook filter. content: application/vnd.api+json: schema: type: object required: - data - links properties: data: description: A webhook filter allows applications to specify who they will receive webhook events for. Refer to the [Webhooks Documentation](/person-api/webhooks) for more information. type: object required: - type - id - attributes - links properties: type: type: string example: webhookFilters id: type: string description: An identifier used to identify non-person resources, such as Certificates and Webhooks. This ID is used for following other links returned in the API response. Concatenating parts of the URL to form a link is discouraged. Instead, use the fully-formed links returned in an API response. example: b463e0f7-c882-4b08-a9c7-e0a2fd90d04b attributes: type: object description: Attributes for a filter object when creating a webhook filter (/people/webhooks/{webhookId}/filters) or an export filter (/people/exports). required: - attribute - values properties: attribute: type: string example: jobs.divisionCode description: A valid attribute or relationship attribute on the people resource. operator: type: string example: STARTS_WITH enum: - STARTS_WITH - ENDS_WITH - CONTAINS - EQUALS - IN description: The comparison to be performed on the values. values: type: array items: type: string example: - A192 - A193 description: A list of values to compare against. Values are required and must be a list of up to 10 non-empty strings. For non-string fields, such as booleans, provide their string equivalents (e.g. "true"). relationships: type: object required: - webhook properties: webhook: 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 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-webhookFilter: value: data: attributes: attribute: firstName operator: STARTS_WITH values: - Ben - Ber - Bel - Bes id: '123' links: self: https://api.wisc.edu/people/webhooks/100/filters/123 relationships: webhook: data: id: '100' type: webhooks links: related: https://api.wisc.edu/people/webhooks/100 type: webhookFilters links: self: https://api.wisc.edu/people/webhooks/100/filters '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. '415': description: 'Request includes a body but not the valid JSON API Content-Type header: application/vnd.api+json' 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: unsupported-media-type-example: value: errors: - status: 415 title: Unsupported Media Type detail: Requests with a body must include the Content-Type header with a value of application/vnd.api+json '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. delete: description: Delete a filter for a webhook. Refer to the [Webhooks Documentation](/person-api/webhooks) for more information. summary: Delete a filter for a webhook. operationId: delete_filter_for_webhook tags: - webhooks parameters: - name: webhookId description: ID of a webhook. 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: b463e0f7-c882-4b08-a9c7-e0a2fd90d04b required: true schema: type: string description: An identifier used to identify non-person resources, such as Certificates and Webhooks. This ID is used for following other links returned in the API response. Concatenating parts of the URL to form a link is discouraged. Instead, use the fully-formed links returned in an API response. example: b463e0f7-c882-4b08-a9c7-e0a2fd90d04b - name: filterId description: ID of a webhook filter. 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: b463e0f7-c882-4b08-a9c7-e0a2fd90d04b required: true schema: type: string description: An identifier used to identify non-person resources, such as Certificates and Webhooks. This ID is used for following other links returned in the API response. Concatenating parts of the URL to form a link is discouraged. Instead, use the fully-formed links returned in an API response. example: b463e0f7-c882-4b08-a9c7-e0a2fd90d04b responses: '204': description: Name deleted. Empty response. '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/webhooks/{webhookId}/relationshipFilters: get: description: Get all relationship filters for a webhook. Refer to the [Webhooks Documentation](/person-api/webhooks) for more information. summary: Get all relationship filters for a webhook. operationId: get_all_relationship_filters_for_webhook tags: - webhooks parameters: - name: webhookId description: ID of a webhook. 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: b463e0f7-c882-4b08-a9c7-e0a2fd90d04b required: true schema: type: string description: An identifier used to identify non-person resources, such as Certificates and Webhooks. This ID is used for following other links returned in the API response. Concatenating parts of the URL to form a link is discouraged. Instead, use the fully-formed links returned in an API response. example: b463e0f7-c882-4b08-a9c7-e0a2fd90d04b responses: '200': description: A collection of webhook relationship filters. content: application/vnd.api+json: schema: type: object required: - data - links properties: data: description: A collection of webhook filters. type: array items: description: A webhook relationship filter allows applications to specify what they will receive webhook events about. Refer to the [Webhooks Documentation](/person-api/webhooks) for more information. type: object required: - type - id - attributes - links properties: type: type: string example: webhookRelationshipFilters id: type: string description: An identifier used to identify non-person resources, such as Certificates and Webhooks. This ID is used for following other links returned in the API response. Concatenating parts of the URL to form a link is discouraged. Instead, use the fully-formed links returned in an API response. example: b463e0f7-c882-4b08-a9c7-e0a2fd90d04b attributes: type: object required: - relationship properties: relationship: type: string example: jobs description: A valid relationship on the people resource. If there are no changes to this relationship in a webhook event, the webhook event will not be sent to you. relationships: type: object required: - webhook properties: webhook: 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 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-webhookRelationshipFilters: value: data: - attributes: relationship: identifiers id: '123' links: self: https://api.wisc.edu/people/webhooks/100/relationshipFilters/123 relationships: webhook: data: id: '100' type: webhooks links: related: https://api.wisc.edu/people/webhooks/100 type: webhookRelationshipFilters links: self: https://api.wisc.edu/people/webhooks/100/relationshipFilters '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 '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. post: description: Create a relationship filter for a webhook. Refer to the [Webhooks Documentation](/person-api/webhooks) for more information. summary: Create a relationship filter for a webhook. operationId: create_relationship_filter_for_webhook tags: - webhooks parameters: - name: webhookId description: ID of a webhook. 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: b463e0f7-c882-4b08-a9c7-e0a2fd90d04b required: true schema: type: string description: An identifier used to identify non-person resources, such as Certificates and Webhooks. This ID is used for following other links returned in the API response. Concatenating parts of the URL to form a link is discouraged. Instead, use the fully-formed links returned in an API response. example: b463e0f7-c882-4b08-a9c7-e0a2fd90d04b requestBody: description: A webhook relationship filter request body. required: true content: application/vnd.api+json: schema: type: object properties: data: type: object required: - type - attributes properties: type: type: string example: webhookRelationshipFilters enum: - webhookRelationshipFilters attributes: type: object required: - relationship properties: relationship: type: string example: jobs description: A valid relationship on the people resource. If there are no changes to this relationship in a webhook event, the webhook event will not be sent to you. responses: '201': description: A single webhook relationship filter. content: application/vnd.api+json: schema: type: object required: - data - links properties: data: description: A webhook relationship filter allows applications to specify what they will receive webhook events about. Refer to the [Webhooks Documentation](/person-api/webhooks) for more information. type: object required: - type - id - attributes - links properties: type: type: string example: webhookRelationshipFilters id: type: string description: An identifier used to identify non-person resources, such as Certificates and Webhooks. This ID is used for following other links returned in the API response. Concatenating parts of the URL to form a link is discouraged. Instead, use the fully-formed links returned in an API response. example: b463e0f7-c882-4b08-a9c7-e0a2fd90d04b attributes: type: object required: - relationship properties: relationship: type: string example: jobs description: A valid relationship on the people resource. If there are no changes to this relationship in a webhook event, the webhook event will not be sent to you. relationships: type: object required: - webhook properties: webhook: 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 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-webhookFilter: value: data: attributes: relationship: identifiers id: '123' links: self: https://api.wisc.edu/people/webhooks/100/relationshipFilters/123 relationships: webhook: data: id: '100' type: webhooks links: related: https://api.wisc.edu/people/webhooks/100 type: webhookRelationshipFilters links: self: https://api.wisc.edu/people/webhooks/100/relationshipFilters '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. '415': description: 'Request includes a body but not the valid JSON API Content-Type header: application/vnd.api+json' 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: unsupported-media-type-example: value: errors: - status: 415 title: Unsupported Media Type detail: Requests with a body must include the Content-Type header with a value of application/vnd.api+json '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/webhooks/{webhookId}/relationshipFilters/{relationshipFilterId}: get: description: Get a relationship filter for a webhook. Refer to the [Webhooks Documentation](/person-api/webhooks) for more information. summary: Get a relationship filter for a webhook. operationId: get_relationship_filter_for_webhook tags: - webhooks parameters: - name: webhookId description: ID of a webhook. 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: b463e0f7-c882-4b08-a9c7-e0a2fd90d04b required: true schema: type: string description: An identifier used to identify non-person resources, such as Certificates and Webhooks. This ID is used for following other links returned in the API response. Concatenating parts of the URL to form a link is discouraged. Instead, use the fully-formed links returned in an API response. example: b463e0f7-c882-4b08-a9c7-e0a2fd90d04b - name: relationshipFilterId description: ID of a webhook relationship filter. 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: b463e0f7-c882-4b08-a9c7-e0a2fd90d04b required: true schema: type: string description: An identifier used to identify non-person resources, such as Certificates and Webhooks. This ID is used for following other links returned in the API response. Concatenating parts of the URL to form a link is discouraged. Instead, use the fully-formed links returned in an API response. example: b463e0f7-c882-4b08-a9c7-e0a2fd90d04b responses: '200': description: A single webhook relationship filter. content: application/vnd.api+json: schema: type: object required: - data - links properties: data: description: A webhook relationship filter allows applications to specify what they will receive webhook events about. Refer to the [Webhooks Documentation](/person-api/webhooks) for more information. type: object required: - type - id - attributes - links properties: type: type: string example: webhookRelationshipFilters id: type: string description: An identifier used to identify non-person resources, such as Certificates and Webhooks. This ID is used for following other links returned in the API response. Concatenating parts of the URL to form a link is discouraged. Instead, use the fully-formed links returned in an API response. example: b463e0f7-c882-4b08-a9c7-e0a2fd90d04b attributes: type: object required: - relationship properties: relationship: type: string example: jobs description: A valid relationship on the people resource. If there are no changes to this relationship in a webhook event, the webhook event will not be sent to you. relationships: type: object required: - webhook properties: webhook: 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 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-webhookFilter: value: data: attributes: relationship: identifiers id: '123' links: self: https://api.wisc.edu/people/webhooks/100/relationshipFilters/123 relationships: webhook: data: id: '100' type: webhooks links: related: https://api.wisc.edu/people/webhooks/100 type: webhookRelationshipFilters links: self: https://api.wisc.edu/people/webhooks/100/relationshipFilters '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. patch: description: Update a relationship filter for a webhook. Refer to the [Webhooks Documentation](/person-api/webhooks) for more information. summary: Update a relationship filter for a webhook. operationId: update_relationship_filter_for_webhook tags: - webhooks parameters: - name: webhookId description: ID of a webhook. 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: b463e0f7-c882-4b08-a9c7-e0a2fd90d04b required: true schema: type: string description: An identifier used to identify non-person resources, such as Certificates and Webhooks. This ID is used for following other links returned in the API response. Concatenating parts of the URL to form a link is discouraged. Instead, use the fully-formed links returned in an API response. example: b463e0f7-c882-4b08-a9c7-e0a2fd90d04b - name: relationshipFilterId description: ID of a webhook relationship filter. 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: b463e0f7-c882-4b08-a9c7-e0a2fd90d04b required: true schema: type: string description: An identifier used to identify non-person resources, such as Certificates and Webhooks. This ID is used for following other links returned in the API response. Concatenating parts of the URL to form a link is discouraged. Instead, use the fully-formed links returned in an API response. example: b463e0f7-c882-4b08-a9c7-e0a2fd90d04b requestBody: description: A webhook relationship filter request body. required: true content: application/vnd.api+json: schema: type: object properties: data: type: object required: - type properties: type: type: string example: webhookRelationshipFilters enum: - webhookRelationshipFilters id: type: string description: An identifier used to identify non-person resources, such as Certificates and Webhooks. This ID is used for following other links returned in the API response. Concatenating parts of the URL to form a link is discouraged. Instead, use the fully-formed links returned in an API response. example: b463e0f7-c882-4b08-a9c7-e0a2fd90d04b attributes: type: object required: - relationship properties: relationship: type: string example: jobs description: A valid relationship on the people resource. If there are no changes to this relationship in a webhook event, the webhook event will not be sent to you. responses: '200': description: A single webhook relationship filter. content: application/vnd.api+json: schema: type: object required: - data - links properties: data: description: A webhook relationship filter allows applications to specify what they will receive webhook events about. Refer to the [Webhooks Documentation](/person-api/webhooks) for more information. type: object required: - type - id - attributes - links properties: type: type: string example: webhookRelationshipFilters id: type: string description: An identifier used to identify non-person resources, such as Certificates and Webhooks. This ID is used for following other links returned in the API response. Concatenating parts of the URL to form a link is discouraged. Instead, use the fully-formed links returned in an API response. example: b463e0f7-c882-4b08-a9c7-e0a2fd90d04b attributes: type: object required: - relationship properties: relationship: type: string example: jobs description: A valid relationship on the people resource. If there are no changes to this relationship in a webhook event, the webhook event will not be sent to you. relationships: type: object required: - webhook properties: webhook: 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 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-webhookFilter: value: data: attributes: relationship: identifiers id: '123' links: self: https://api.wisc.edu/people/webhooks/100/relationshipFilters/123 relationships: webhook: data: id: '100' type: webhooks links: related: https://api.wisc.edu/people/webhooks/100 type: webhookRelationshipFilters links: self: https://api.wisc.edu/people/webhooks/100/relationshipFilters '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. '415': description: 'Request includes a body but not the valid JSON API Content-Type header: application/vnd.api+json' 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: unsupported-media-type-example: value: errors: - status: 415 title: Unsupported Media Type detail: Requests with a body must include the Content-Type header with a value of application/vnd.api+json '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. delete: description: Delete a relationship filter for a webhook. Refer to the [Webhooks Documentation](/person-api/webhooks) for more information. summary: Delete a relationship filter for a webhook. operationId: delete_relationship_filter_for_webhook tags: - webhooks parameters: - name: webhookId description: ID of a webhook. 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: b463e0f7-c882-4b08-a9c7-e0a2fd90d04b required: true schema: type: string description: An identifier used to identify non-person resources, such as Certificates and Webhooks. This ID is used for following other links returned in the API response. Concatenating parts of the URL to form a link is discouraged. Instead, use the fully-formed links returned in an API response. example: b463e0f7-c882-4b08-a9c7-e0a2fd90d04b - name: relationshipFilterId description: ID of a webhook relationship filter. 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: b463e0f7-c882-4b08-a9c7-e0a2fd90d04b required: true schema: type: string description: An identifier used to identify non-person resources, such as Certificates and Webhooks. This ID is used for following other links returned in the API response. Concatenating parts of the URL to form a link is discouraged. Instead, use the fully-formed links returned in an API response. example: b463e0f7-c882-4b08-a9c7-e0a2fd90d04b responses: '204': description: Webhook relationship filter deleted. Empty response. '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 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).'