Skip to content
Snippets Groups Projects
process-objects.json 930 KiB
Newer Older
Rebecca Wheeler's avatar
Rebecca Wheeler committed
{
  "openapi": "3.0.2",
  "info": {
    "title": "Person API",
    "version": "1.0.0",
    "contact": {
      "name": "DoIT Enterprise Integration API Team",
      "email": "api@doit.wisc.edu",
      "url": "https://go.wisc.edu/k701y6"
Rebecca Wheeler's avatar
Rebecca Wheeler committed
    },
    "description": "An API for interacting with person data at UW-Madison. Refer to the [Person API Documentation](/person-api) for more information about this API."
  },
  "servers": [
    {
      "url": "https://api.wisc.edu"
    }
  ],
  "security": [
    {
      "OAuth2ClientCredentials": []
    }
  ],
  "externalDocs": {
    "description": "Read more about JSON:API here",
    "url": "https://jsonapi.org/"
  },
  "paths": {
    "/people": {
      "get": {
        "description": "Get a collection of people.",
        "summary": "Get people.",
        "operationId": "get_people",
        "tags": [
          "people"
        ],
        "parameters": [
          {
            "name": "filter",
            "in": "query",
            "description": "Filter results of query using the [filter query parameter family](https://jsonapi.org/recommendations/#filtering). Refer to the [Person API Documentation](/person-api/filter-query-parameter) for more information about the `filter` query param.",
            "required": false,
            "style": "deepObject",
            "explode": true,
            "schema": {
              "type": "object",
              "additionalProperties": false,
              "properties": {
                "attribute": {
                  "type": "string",
                  "example": "firstName"
                }
              }
            }
          },
          {
            "name": "fields",
            "in": "query",
            "description": "Specify the list of fields you would like to return for each resource type.  For example, `fields[people]=firstName,lastName` will just return the names for people.  If you are including related resources with 'includes' you can also specify fields on those resources as well.  For example, `includes=jobs&fields[people]=jobs&fields[jobs]=title` will just return titles for jobs.  See [Sparse Fieldsets](https://jsonapi.org/format/#fetching-sparse-fieldsets) for more details.",
            "required": false,
            "style": "deepObject",
            "explode": true,
            "schema": {
              "type": "object",
              "additionalProperties": false,
              "properties": {
                "type": {
                  "type": "string",
                  "example": "people"
                }
              }
            }
          },
          {
            "name": "include",
            "in": "query",
            "description": "[include related resources](https://jsonapi.org/format/#fetching-includes). The resources to include need to be direct relationships. Nested relationships are not supported. For example, `include=jobs,identifiers` is supported but `include=person.jobs` is not supported.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "page",
            "in": "query",
            "description": "Define options for pagination of responses. For example, `page[size]=5&page[after]=400&page[before]=800` will return a response with data about 5 people whose `id` value falls after `400` but before `800`. So `page[size]` determines the number of people resources in a response, `page[after]` is the ID of the person at the end of the previous page, `page[before]` is the ID of the person at the start of the next page. Offset pagination is also supported using `page[number]` parameter (example: `page[number]=4&page[size]=10`), but it is disabled by default. The `page[number]` determines the page to display. Offset pagination has significantly worse performance than cursor pagination, so it should only be used by applications that can't support cursor pagination. Contact the developers if you would like to enable it.",
            "required": false,
            "style": "deepObject",
            "explode": true,
            "schema": {
              "type": "object",
              "properties": {
                "size": {
                  "type": "integer",
                  "example": 50,
                  "maximum": 1000,
                  "minimum": 1,
                  "default": 100,
                  "description": "Size of page for paginated results."
                },
                "after": {
                  "type": "string",
                  "description": "An ephemeral identifier used only in the Person API to adhere to the [JSON:API specification](https://jsonapi.org/format/#document-resource-object-identification). This ID may change if a person is split into two people or two people are merged into one person. This ID is used for paginating results or following other links returned in the API response. This ID should not be stored in a consuming system. Concatenating parts of the URL to form a link is discouraged. Instead, use the fully-formed links returned in an API response.",
                  "example": "12345"
                },
                "before": {
                  "type": "string",
                  "description": "An ephemeral identifier used only in the Person API to adhere to the [JSON:API specification](https://jsonapi.org/format/#document-resource-object-identification). This ID may change if a person is split into two people or two people are merged into one person. This ID is used for paginating results or following other links returned in the API response. This ID should not be stored in a consuming system. Concatenating parts of the URL to form a link is discouraged. Instead, use the fully-formed links returned in an API response.",
                  "example": "12345"
                },
                "number": {
                  "type": "integer",
                  "example": 1,
                  "minimum": 1,
                  "description": "Page number for paginated results. This parameter is disabled by default. Contact the developers if you would like to enable it."
                }
              }
            }
          }
        ],
        "responses": {
          "200": {
            "description": "A collection of people",
            "content": {
              "application/vnd.api+json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "data",
                    "links"
                  ],
                  "properties": {
                    "data": {
                      "description": "A collection of people",
                      "type": "array",
                      "items": {
                        "description": "A person",
                        "type": "object",
                        "required": [
                          "type",
                          "id",
                          "attributes",
                          "relationships",
                          "links",
                          "meta"
                        ],
                        "properties": {
                          "type": {
                            "type": "string",
                            "example": "people"
                          },
                          "id": {
                            "type": "string",
                            "description": "An ephemeral identifier used only in the Person API to adhere to the [JSON:API specification](https://jsonapi.org/format/#document-resource-object-identification). This ID may change if a person is split into two people or two people are merged into one person. This ID is used for paginating results or following other links returned in the API response. This ID should not be stored in a consuming system. Concatenating parts of the URL to form a link is discouraged. Instead, use the fully-formed links returned in an API response.",
                            "example": "12345"
                          },
                          "attributes": {
Rebecca Wheeler's avatar
Rebecca Wheeler committed
                            "type": "object",
                            "required": [
                              "firstName",
                              "lastName",
                              "emailAddress",
                              "officeAddress",
                              "officePhoneNumber"
                            ],
Rebecca Wheeler's avatar
Rebecca Wheeler committed
                            "properties": {
                              "firstName": {
                                "type": "string",
                                "example": "John",
                                "description": "First name, derived from the person's current UW affiliations."
                              },
                              "lastName": {
                                "type": "string",
                                "example": "Smith",
                                "description": "Last name, derived from the person's current UW affiliations."
                              },
                              "emailAddress": {
                                "type": "string",
                                "example": "john.smith@wisc.edu",
                                "description": "The email address this person has designated as their primary, if set.  Otherwise, their Campus Business Email, or other email derived from their current UW affiliations."
                              },
                              "officeAddress": {
                                "type": "string",
                                "description": "Primary work-related address derived from the person's current UW affiliations.  May or may not be a fully-formed street address.",
                                "example": "1210 W. Dayton Street Madison, WI 53706-1613",
                                "nullable": true
                              },
                              "officePhoneNumber": {
                                "type": "string",
                                "example": "608-262-1204",
                                "description": "Primary work-related phone number derived from the person's current UW affiliations.  May or may not be associated with the officeAddress.",
                                "nullable": true
                              }
Rebecca Wheeler's avatar
Rebecca Wheeler committed
                            }
                          },
                          "relationships": {
Rebecca Wheeler's avatar
Rebecca Wheeler committed
                            "type": "object",
                            "required": [
                              "identifiers",
                              "jobs",
                              "names",
                              "wiscard"
                            ],
Rebecca Wheeler's avatar
Rebecca Wheeler committed
                            "properties": {
                              "identifiers": {
                                "description": "A generic relationship object",
                                "type": "object",
                                "properties": {
                                  "links": {
Rebecca Wheeler's avatar
Rebecca Wheeler committed
                                    "type": "object",
                                    "properties": {
                                      "related": {
                                        "type": "string",
                                        "example": "https://api.wisc.edu/link/to/related/object"
                                      }
Rebecca Wheeler's avatar
Rebecca Wheeler committed
                                    }
                                  },
                                  "data": {
                                    "type": "array",
                                    "items": {
                                      "type": "object",
                                      "properties": {
                                        "type": {
                                          "type": "string",
                                          "example": "sampleType"
                                        },
                                        "id": {
                                          "type": "string",
                                          "example": "sampleId"
Rebecca Wheeler's avatar
Rebecca Wheeler committed
                                        }
Rebecca Wheeler's avatar
Rebecca Wheeler committed
                                    }
Rebecca Wheeler's avatar
Rebecca Wheeler committed
                                }
                              },
                              "jobs": {
                                "description": "A generic relationship object",
                                "type": "object",
                                "properties": {
                                  "links": {
Rebecca Wheeler's avatar
Rebecca Wheeler committed
                                    "type": "object",
                                    "properties": {
                                      "related": {
                                        "type": "string",
                                        "example": "https://api.wisc.edu/link/to/related/object"
                                      }
Rebecca Wheeler's avatar
Rebecca Wheeler committed
                                    }
                                  },
                                  "data": {
                                    "type": "array",
                                    "items": {
                                      "type": "object",
                                      "properties": {
                                        "type": {
                                          "type": "string",
                                          "example": "sampleType"
                                        },
                                        "id": {
                                          "type": "string",
                                          "example": "sampleId"
Rebecca Wheeler's avatar
Rebecca Wheeler committed
                                        }
Rebecca Wheeler's avatar
Rebecca Wheeler committed
                                    }
Rebecca Wheeler's avatar
Rebecca Wheeler committed
                                }
                              },
                              "names": {
                                "description": "A generic relationship object",
                                "type": "object",
                                "properties": {
                                  "links": {
Rebecca Wheeler's avatar
Rebecca Wheeler committed
                                    "type": "object",
                                    "properties": {
                                      "related": {
                                        "type": "string",
                                        "example": "https://api.wisc.edu/link/to/related/object"
                                      }
Rebecca Wheeler's avatar
Rebecca Wheeler committed
                                    }
                                  },
                                  "data": {
                                    "type": "array",
                                    "items": {
                                      "type": "object",
                                      "properties": {
                                        "type": {
                                          "type": "string",
                                          "example": "sampleType"
                                        },
                                        "id": {
                                          "type": "string",
                                          "example": "sampleId"
Rebecca Wheeler's avatar
Rebecca Wheeler committed
                                        }
Rebecca Wheeler's avatar
Rebecca Wheeler committed
                                    }
Rebecca Wheeler's avatar
Rebecca Wheeler committed
                                }
                              },
                              "wiscard": {
                                "description": "A generic relationship object",
                                "type": "object",
                                "properties": {
                                  "links": {
Rebecca Wheeler's avatar
Rebecca Wheeler committed
                                    "type": "object",
                                    "properties": {
                                      "related": {
                                        "type": "string",
                                        "example": "https://api.wisc.edu/link/to/related/object"
                                      }
Rebecca Wheeler's avatar
Rebecca Wheeler committed
                                    }
                                  },
                                  "data": {
Rebecca Wheeler's avatar
Rebecca Wheeler committed
                                    "type": "object",
                                    "properties": {
                                      "type": {
                                        "type": "string",
                                        "example": "sampleType"
                                      },
                                      "id": {
                                        "type": "string",
                                        "example": "sampleId"
                                      }
Rebecca Wheeler's avatar
Rebecca Wheeler committed
                                    }
Rebecca Wheeler's avatar
Rebecca Wheeler committed
                                }
Rebecca Wheeler's avatar
Rebecca Wheeler committed
                            }
                          },
                          "links": {
                            "description": "The link to access a resource itself",
Rebecca Wheeler's avatar
Rebecca Wheeler committed
                            "type": "object",
                            "properties": {
                              "self": {
                                "type": "string",
                                "example": "https://api.wisc.edu/link/to/self"
                              }
Rebecca Wheeler's avatar
Rebecca Wheeler committed
                            }
                          },
                          "meta": {
                            "type": "object",
                            "properties": {
                              "ferpa": {
                                "type": "boolean",
                                "example": false,
                                "description": "Indicates whether or not a student has elected FERPA coverage on one or more of their attributes. Please see https://registrar.wisc.edu/ferpa/ for more details about how to handle FERPA data."
                              },
                              "ferpaAttributes": {
                                "type": "array",
                                "items": {
                                  "type": "string"
Rebecca Wheeler's avatar
Rebecca Wheeler committed
                                },
                                "description": "Not currently used."
                              },
                              "privateAttributes": {
                                "type": "array",
                                "items": {
                                  "type": "string"
Rebecca Wheeler's avatar
Rebecca Wheeler committed
                                },
                                "description": "Not currently used."
                              }
Rebecca Wheeler's avatar
Rebecca Wheeler committed
                            }
Rebecca Wheeler's avatar
Rebecca Wheeler committed
                        }
Rebecca Wheeler's avatar
Rebecca Wheeler committed
                    },
                    "links": {
                      "description": "Self and pagination links",
                      "allOf": [
                        {
                          "description": "The link to access a resource itself",
                          "type": "object",
                          "properties": {
                            "self": {
                              "type": "string",
                              "example": "https://api.wisc.edu/link/to/self"
Rebecca Wheeler's avatar
Rebecca Wheeler committed
                            }
                          }
                        },
                        {
                          "description": "The links associated with a paginated collection",
                          "type": "object",
                          "properties": {
                            "self": {
                              "description": "The current page of data",
                              "type": "string",
                              "format": "uri-reference",
                              "example": "https://api.wisc.edu/people?page[after]=6"
                            },
                            "prev": {
                              "description": "The previous page of data",
                              "type": "string",
                              "format": "uri-reference",
                              "example": "https://api.wisc.edu/people?page[before]=7"
                            },
                            "next": {
                              "description": "The next page of data",
                              "type": "string",
                              "format": "uri-reference",
                              "example": "https://api.wisc.edu/people?page[after]=8"
                            },
                            "first": {
                              "description": "Available when using offset pagination. The first page of data",
                              "type": "string",
                              "format": "uri-reference",
                              "example": "https://api.wisc.edu/people?page[number]=1"
                            },
                            "last": {
                              "description": "Available when using offset pagination. The last page of data",
                              "type": "string",
                              "format": "uri-reference",
                              "example": "https://api.wisc.edu/people?page[number]=10"
Rebecca Wheeler's avatar
Rebecca Wheeler committed
                            }
Rebecca Wheeler's avatar
Rebecca Wheeler committed
                        }
Rebecca Wheeler's avatar
Rebecca Wheeler committed
                    },
                    "meta": {
                      "type": "object",
                      "properties": {
                        "paging": {
                          "type": "object",
                          "properties": {
                            "totalPeople": {
                              "type": "integer",
                              "example": 100,
                              "description": "The total number of people available for the collection"
Rebecca Wheeler's avatar
Rebecca Wheeler committed
                            }
                          },
                          "example": 100,
                          "description": "The total number of people in the collection"
Rebecca Wheeler's avatar
Rebecca Wheeler committed
                        }
Rebecca Wheeler's avatar
Rebecca Wheeler committed
                    },
                    "included": {
                      "description": "Included related resources",
                      "type": "array",
                      "items": {
                        "description": "A generic resource object",
                        "type": "object",
                        "properties": {
                          "type": {
                            "type": "string",
                            "example": "sampleType"
                          },
                          "id": {
                            "type": "string",
                            "example": "sampleId"
                          },
                          "attributes": {
                            "type": "object",
                            "properties": {
                              "attribute1": {
                                "type": "string",
                                "example": "sampleStringAttribute"
                              },
                              "attribute2": {
                                "type": "number",
                                "example": 123
                              }
                            }
                          },
                          "relationships": {
                            "type": "object",
                            "properties": {
                              "relatedResource": {
                                "description": "A generic relationship object",
                                "type": "object",
                                "properties": {
                                  "links": {
Rebecca Wheeler's avatar
Rebecca Wheeler committed
                                    "type": "object",
                                    "properties": {
                                      "related": {
                                        "type": "string",
                                        "example": "https://api.wisc.edu/link/to/related/object"
                                      }
Rebecca Wheeler's avatar
Rebecca Wheeler committed
                                    }
                                  },
                                  "data": {
Rebecca Wheeler's avatar
Rebecca Wheeler committed
                                    "type": "object",
                                    "properties": {
                                      "type": {
                                        "type": "string",
                                        "example": "sampleType"
                                      },
                                      "id": {
                                        "type": "string",
                                        "example": "sampleId"
                                      }
Rebecca Wheeler's avatar
Rebecca Wheeler committed
                                    }
Rebecca Wheeler's avatar
Rebecca Wheeler committed
                                }
                              }
                            }
                          },
                          "links": {
                            "description": "The link to access a resource itself",
                            "type": "object",
                            "properties": {
                              "self": {
                                "type": "string",
                                "example": "https://api.wisc.edu/link/to/self"
                              }
Rebecca Wheeler's avatar
Rebecca Wheeler committed
                            }
Rebecca Wheeler's avatar
Rebecca Wheeler committed
                        }
Rebecca Wheeler's avatar
Rebecca Wheeler committed
                    }
                  }
                },
                "examples": {
                  "example-people": {
                    "value": {
                      "data": [
                        {
                          "attributes": {
                            "emailAddress": "john.smith@wisc.edu",
                            "firstName": "John",
                            "lastName": "Smith",
                            "officeAddress": "1210 W Dayton St, Madison, WI 53706",
                            "officePhoneNumber": "608-555-1234"
                          },
                          "id": "100",
                          "links": {
                            "self": "https://api.wisc.edu/people/100"
                          },
                          "meta": {
                            "ferpa": false,
                            "ferpaAttributes": [],
                            "privateAttributes": []
                          },
                          "relationships": {
                            "identifiers": {
                              "data": [
                                {
                                  "id": "100",
                                  "type": "identifiers"
                                }
                              ],
                              "links": {
                                "related": "https://api.wisc.edu/people/100/identifiers"
                              }
                            },
                            "jobs": {
                              "data": [
                                {
                                  "id": "100",
                                  "type": "jobs"
                                }
                              ],
                              "links": {
                                "related": "https://api.wisc.edu/people/100/jobs"
                              }
                            },
                            "names": {
                              "data": [
                                {
                                  "id": "100",
                                  "type": "names"
                                }
                              ],
                              "links": {
                                "related": "https://api.wisc.edu/people/100/names"
                              }
                            },
                            "wiscard": {
                              "data": {
                                "id": "100",
                                "type": "wiscard"
                              },
                              "links": {
                                "related": "https://api.wisc.edu/people/100/wiscard"
                              }
                            }
                          },
                          "type": "people"
                        }
                      ],
                      "links": {
                        "self": "https://api.wisc.edu/people"
                      }
                    }
                  }
                }
              }
Rebecca Wheeler's avatar
Rebecca Wheeler committed
            }
          },
          "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"
                          }
                        }
                      }
Rebecca Wheeler's avatar
Rebecca Wheeler committed
                    }
                  }
                },
                "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'."
                        }
                      ]
                    }
                  }
Rebecca Wheeler's avatar
Rebecca Wheeler committed
                }
Rebecca Wheeler's avatar
Rebecca Wheeler committed
            }
          },
          "401": {
            "description": "Incorrect or expired OAuth token.",
            "content": {
              "application/vnd.api+json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "errors": {
                      "type": "array",
                      "items": {
                        "description": "An error",
Rebecca Wheeler's avatar
Rebecca Wheeler committed
                        "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"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "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."
                        }
                      ]
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/people/{id}": {
      "get": {
        "description": "Get a person. It is not recommended to manually build this URL or other URLs that contain path parameters, for example, by using concatenation. Instead, use the fully-qualified links returned in other resources to use this resource and other \"Get By ID\" resources.",
        "summary": "Get a person.",
        "operationId": "get_person",
        "tags": [
          "people"
        ],
        "parameters": [
          {
            "name": "id",
            "description": "ID of a person. This parameter should not be manually built/concatenated, but instead be used by following the fully-formed links returned in an API response. To get a person by an ID, use query parameters to search by a specific identifier. Example: /people?filter[identifiers.name]=netId&filter[identifiers.value]=bbadger",
            "in": "path",
            "example": "700",
            "required": true,
            "schema": {
              "type": "string",
              "description": "An ephemeral identifier used only in the Person API to adhere to the [JSON:API specification](https://jsonapi.org/format/#document-resource-object-identification). This ID may change if a person is split into two people or two people are merged into one person. This ID is used for paginating results or following other links returned in the API response. This ID should not be stored in a consuming system. Concatenating parts of the URL to form a link is discouraged. Instead, use the fully-formed links returned in an API response.",
              "example": "12345"
            }
          },
          {
            "name": "include",
            "in": "query",
            "description": "[include related resources](https://jsonapi.org/format/#fetching-includes). The resources to include need to be direct relationships. Nested relationships are not supported. For example, `include=jobs,identifiers` is supported but `include=person.jobs` is not supported.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "fields",
            "in": "query",
            "description": "Specify the list of fields you would like to return for each resource type.  For example, `fields[people]=firstName,lastName` will just return the names for people.  If you are including related resources with 'includes' you can also specify fields on those resources as well.  For example, `includes=jobs&fields[people]=jobs&fields[jobs]=title` will just return titles for jobs.  See [Sparse Fieldsets](https://jsonapi.org/format/#fetching-sparse-fieldsets) for more details.",
            "required": false,
            "style": "deepObject",
            "explode": true,
            "schema": {
              "type": "object",
              "additionalProperties": false,
              "properties": {
                "type": {
                  "type": "string",
                  "example": "people"
                }
              }
            }
          }
        ],
        "responses": {
          "200": {
            "description": "A single person",
            "content": {
              "application/vnd.api+json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "data",
                    "links"
                  ],
                  "properties": {
                    "data": {
                      "description": "A person",
                      "type": "object",
                      "required": [
                        "type",
                        "id",
                        "attributes",
                        "relationships",
                        "links",
                        "meta"
                      ],
                      "properties": {
                        "type": {
                          "type": "string",
                          "example": "people"
                        },
                        "id": {
                          "type": "string",
                          "description": "An ephemeral identifier used only in the Person API to adhere to the [JSON:API specification](https://jsonapi.org/format/#document-resource-object-identification). This ID may change if a person is split into two people or two people are merged into one person. This ID is used for paginating results or following other links returned in the API response. This ID should not be stored in a consuming system. Concatenating parts of the URL to form a link is discouraged. Instead, use the fully-formed links returned in an API response.",
                          "example": "12345"
                        },
                        "attributes": {
                          "type": "object",
                          "required": [
Rebecca Wheeler's avatar
Rebecca Wheeler committed
                            "firstName",
                            "lastName",
                            "emailAddress",
                            "officeAddress",
                            "officePhoneNumber"
                          ],
                          "properties": {
Rebecca Wheeler's avatar
Rebecca Wheeler committed
                            "firstName": {
                              "type": "string",
                              "example": "John",
                              "description": "First name, derived from the person's current UW affiliations."
Rebecca Wheeler's avatar
Rebecca Wheeler committed
                            },
                            "lastName": {
                              "type": "string",
                              "example": "Smith",
                              "description": "Last name, derived from the person's current UW affiliations."
Rebecca Wheeler's avatar
Rebecca Wheeler committed
                            },
                            "emailAddress": {
                              "type": "string",
                              "example": "john.smith@wisc.edu",
                              "description": "The email address this person has designated as their primary, if set.  Otherwise, their Campus Business Email, or other email derived from their current UW affiliations."
Rebecca Wheeler's avatar
Rebecca Wheeler committed
                            },
                            "officeAddress": {
                              "type": "string",
                              "description": "Primary work-related address derived from the person's current UW affiliations.  May or may not be a fully-formed street address.",
                              "example": "1210 W. Dayton Street Madison, WI 53706-1613",
                              "nullable": true
Rebecca Wheeler's avatar
Rebecca Wheeler committed
                            },
                            "officePhoneNumber": {
                              "type": "string",
                              "example": "608-262-1204",
                              "description": "Primary work-related phone number derived from the person's current UW affiliations.  May or may not be associated with the officeAddress.",
                              "nullable": true
Rebecca Wheeler's avatar
Rebecca Wheeler committed
                            }
                          }
                        },
                        "relationships": {
                          "type": "object",
                          "required": [
Rebecca Wheeler's avatar
Rebecca Wheeler committed
                            "identifiers",
                            "jobs",
                            "names",
                            "wiscard"
                          ],
                          "properties": {
Rebecca Wheeler's avatar
Rebecca Wheeler committed
                            "identifiers": {
                              "description": "A generic relationship object",
                              "type": "object",
                              "properties": {
                                "links": {
                                  "type": "object",