openapi: 3.0.1 info: title: IdCard Web Service (IdCardWS) description: IdCard Web Service (IdCardWS) provides a RESTful API to UW IdCard data. Subscribe to http://mailman.u.washington.edu/mailman/listinfo/idcardws-users to get notifications about planned outages, support and the announcement of new features. contact: name: Enterprise Web Services & Events Team url: https://itconnect.uw.edu/service/enterprise-web-services-and-events/ email: idcardws-support@uw.edu version: v1 servers: - url: /idcard paths: /v1/card: get: tags: - Card operationId: GetCards parameters: - name: mag_strip_code in: query schema: type: string default: '' - name: prox_rfid in: query schema: type: string default: '' responses: '200': description: OK content: text/html: schema: $ref: '#/components/schemas/CardSearchViewModel' application/xml: schema: $ref: '#/components/schemas/CardSearchViewModel' text/xml: schema: $ref: '#/components/schemas/CardSearchViewModel' text/plain: schema: $ref: '#/components/schemas/CardSearchViewModel' application/json: schema: $ref: '#/components/schemas/CardSearchViewModel' text/json: schema: $ref: '#/components/schemas/CardSearchViewModel' '301': description: Moved Permanently '400': description: Bad Request '403': description: Forbidden '410': description: Gone '202': description: Accepted '302': description: Found '304': description: NotModified '401': description: Identity '{identity}' is not authorized to access this resource. '405': description: MethodNotAllowed '500': description: InternalServerError '503': description: ServiceUnavailable /v1/photo/{reg_Id}: get: tags: - Photo summary: Get the Id card photo (image/jpeg) for the indicated person. operationId: Photo parameters: - name: reg_Id in: path required: true schema: type: string responses: '200': description: OK '400': description: Bad Request '404': description: Not Found '202': description: Accepted '301': description: MovedPermanently '302': description: Found '304': description: NotModified '401': description: Identity '{identity}' is not authorized to access this resource. '405': description: MethodNotAllowed '500': description: InternalServerError '503': description: ServiceUnavailable /v1/photo/{reg_Id}.{file_extension}: get: tags: - Photo summary: Get the Id card photo (image/jpeg) for the indicated person. operationId: PhotoWithExtension parameters: - name: reg_Id in: path required: true schema: type: string - name: file_extension in: path description: 'Accepted values: jpg' required: true schema: type: string responses: '200': description: OK '400': description: Bad Request '404': description: Not Found '202': description: Accepted '301': description: MovedPermanently '302': description: Found '304': description: NotModified '401': description: Identity '{identity}' is not authorized to access this resource. '405': description: MethodNotAllowed '500': description: InternalServerError '503': description: ServiceUnavailable /v1/photo: get: tags: - Photo operationId: PhotoSearch parameters: - name: reg_id in: query schema: type: string default: '' - name: net_id in: query schema: type: string default: '' - name: student_number in: query schema: type: string default: '' - name: employee_id in: query schema: type: string default: '' - name: height in: query schema: type: string default: '' responses: '200': description: OK content: text/html: schema: $ref: '#/components/schemas/PhotoSearchViewModel' application/xml: schema: $ref: '#/components/schemas/PhotoSearchViewModel' text/xml: schema: $ref: '#/components/schemas/PhotoSearchViewModel' text/plain: schema: $ref: '#/components/schemas/PhotoSearchViewModel' application/json: schema: $ref: '#/components/schemas/PhotoSearchViewModel' text/json: schema: $ref: '#/components/schemas/PhotoSearchViewModel' '400': description: Bad Request '202': description: Accepted '301': description: MovedPermanently '302': description: Found '304': description: NotModified '401': description: Identity '{identity}' is not authorized to access this resource. '405': description: MethodNotAllowed '500': description: InternalServerError '503': description: ServiceUnavailable /v1: get: tags: - ResourceList operationId: GetResources responses: '200': description: OK content: text/html: schema: $ref: '#/components/schemas/ResourceListViewModel' application/xml: schema: $ref: '#/components/schemas/ResourceListViewModel' text/xml: schema: $ref: '#/components/schemas/ResourceListViewModel' text/plain: schema: $ref: '#/components/schemas/ResourceListViewModel' application/json: schema: $ref: '#/components/schemas/ResourceListViewModel' text/json: schema: $ref: '#/components/schemas/ResourceListViewModel' '202': description: Accepted '301': description: MovedPermanently '302': description: Found '304': description: NotModified '401': description: Identity '{identity}' is not authorized to access this resource. '405': description: MethodNotAllowed '500': description: InternalServerError '503': description: ServiceUnavailable /: get: tags: - Version summary: Get available versions description: "
\r\n                {\r\n                    \"DisplayTitle\" : \"Service Version\",\r\n        \
        \            \"sws_guid\" : \"3BFD2A3E-5BAE-47D3-9BE2-4A603320F632\",\r\n                    \"LongDescription\" :\
        \ \"Get available versions\",\r\n                    \"ShortDescription\" : \"Get available versions\",\r\n      \
        \              \"OriginatingSchema\" : [{ \"source\": \"hardcoded\" }],\r\n                    \"Notes\" : \"The version\
        \ list resource lists the contract versions that are currently available for the service.\r\n                    \
        \            Each contract version in the list links to a resource list which provides a list of search resources.\r\
        \n                                Also provided in this resource are the code versions that supports the given contract\
        \ versions.\r\n                                The code version is divided into 2 types:\r\n                     \
        \               Domain Core Version\r\n                                    Service Version\r\n                   \
        \             This is primarily useful for change management.\",\r\n                    \"Links\" : [],\r\n      \
        \              \"Synonyms\" : []\r\n                }\r\n                
" operationId: GetVersions responses: '200': description: OK content: text/html: schema: $ref: '#/components/schemas/VersionListViewModel' application/xml: schema: $ref: '#/components/schemas/VersionListViewModel' text/xml: schema: $ref: '#/components/schemas/VersionListViewModel' text/plain: schema: $ref: '#/components/schemas/VersionListViewModel' application/json: schema: $ref: '#/components/schemas/VersionListViewModel' text/json: schema: $ref: '#/components/schemas/VersionListViewModel' '202': description: Accepted '301': description: MovedPermanently '302': description: Found '304': description: NotModified '401': description: Identity '{identity}' is not authorized to access this resource. '405': description: MethodNotAllowed '500': description: InternalServerError '503': description: ServiceUnavailable components: schemas: CardSearchResourceUri: type: object properties: href: type: string nullable: true magStripCode: type: string nullable: true proxRFID: type: string nullable: true viewFormat: $ref: '#/components/schemas/ViewFormats' additionalProperties: false CardSearchResultViewModel: type: object properties: metadata: type: string nullable: true pageCount: type: string description: "Actual number of records on the current search results page. This must be set by the view in order\r\ \nfor paging to work." nullable: true previousPageStart: type: string description: The counter value for the start of the previous search results page. nullable: true readOnly: true pageSize: type: string description: Requested number of records for the current search results page. nullable: true pageStart: type: string description: The counter value for the start of the current search results page. nullable: true nextPageStart: type: string description: The counter value for the start of the next search results page. nullable: true readOnly: true totalCount: type: integer format: int32 pageStartOffset: type: integer description: "The page start offset. Since sources are generally 0 based and the view\r\ndefaults to 1 based, our\ \ offset defaults to -1." format: int32 format: $ref: '#/components/schemas/ViewFormats' regID: type: string nullable: true readOnly: true additionalProperties: false CardSearchViewModel: type: object properties: metadata: type: string nullable: true pageCount: type: string description: "Actual number of records on the current search results page. This must be set by the view in order\r\ \nfor paging to work." nullable: true previousPageStart: type: string description: The counter value for the start of the previous search results page. nullable: true readOnly: true pageSize: type: string description: Requested number of records for the current search results page. nullable: true pageStart: type: string description: The counter value for the start of the current search results page. nullable: true nextPageStart: type: string description: The counter value for the start of the next search results page. nullable: true readOnly: true pageStartOffset: type: integer description: "The page start offset. Since sources are generally 0 based and the view\r\ndefaults to 1 based, our\ \ offset defaults to -1." format: int32 format: $ref: '#/components/schemas/ViewFormats' cardSearchResultVM: $ref: '#/components/schemas/CardSearchResultViewModel' xhtmlTitle: type: string nullable: true readOnly: true totalCount: type: integer format: int32 cards: type: array items: $ref: '#/components/schemas/CardSearchResultViewModel' nullable: true readOnly: true current: $ref: '#/components/schemas/CardSearchResourceUri' additionalProperties: false IVersionList: type: object properties: dfdsSendRequestTiming: type: number format: double dfdsOpenRequestTiming: type: number format: double expires: type: string format: date-time readOnly: true serviceCodeVersion: type: string nullable: true domainCoreVersion: type: string nullable: true list: type: array items: $ref: '#/components/schemas/VersionModel' nullable: true additionalProperties: false PhotoResourceUri: type: object properties: viewFormat: $ref: '#/components/schemas/ViewFormats' href: type: string nullable: true uriAppender: type: string nullable: true fileExtension: type: string nullable: true height: type: integer format: int32 nullable: true regId: type: string nullable: true additionalProperties: false PhotoSearchResourceUri: type: object properties: href: type: string nullable: true regId: type: string nullable: true netId: type: string nullable: true studentNumber: type: string nullable: true employeeId: type: string nullable: true height: type: string nullable: true viewFormat: $ref: '#/components/schemas/ViewFormats' additionalProperties: false PhotoSearchViewModel: type: object properties: metadata: type: string nullable: true pageCount: type: string description: "Actual number of records on the current search results page. This must be set by the view in order\r\ \nfor paging to work." nullable: true previousPageStart: type: string description: The counter value for the start of the previous search results page. nullable: true readOnly: true pageSize: type: string description: Requested number of records for the current search results page. nullable: true pageStart: type: string description: The counter value for the start of the current search results page. nullable: true nextPageStart: type: string description: The counter value for the start of the next search results page. nullable: true readOnly: true totalCount: type: integer format: int32 pageStartOffset: type: integer description: "The page start offset. Since sources are generally 0 based and the view\r\ndefaults to 1 based, our\ \ offset defaults to -1." format: int32 format: $ref: '#/components/schemas/ViewFormats' searchResultsCount: type: integer format: int32 readOnly: true photos: type: array items: $ref: '#/components/schemas/PhotoViewModel' nullable: true readOnly: true title: type: string nullable: true readOnly: true current: $ref: '#/components/schemas/PhotoSearchResourceUri' additionalProperties: false PhotoViewModel: type: object properties: metadata: type: string nullable: true pageCount: type: string description: "Actual number of records on the current search results page. This must be set by the view in order\r\ \nfor paging to work." nullable: true previousPageStart: type: string description: The counter value for the start of the previous search results page. nullable: true readOnly: true pageSize: type: string description: Requested number of records for the current search results page. nullable: true pageStart: type: string description: The counter value for the start of the current search results page. nullable: true nextPageStart: type: string description: The counter value for the start of the next search results page. nullable: true readOnly: true totalCount: type: integer format: int32 pageStartOffset: type: integer description: "The page start offset. Since sources are generally 0 based and the view\r\ndefaults to 1 based, our\ \ offset defaults to -1." format: int32 format: $ref: '#/components/schemas/ViewFormats' nameAndRegID: type: string nullable: true readOnly: true fullName: type: string nullable: true readOnly: true regId: type: string nullable: true readOnly: true fileExtension: type: string nullable: true readOnly: true height: type: integer format: int32 nullable: true readOnly: true small: $ref: '#/components/schemas/PhotoResourceUri' medium: $ref: '#/components/schemas/PhotoResourceUri' large: $ref: '#/components/schemas/PhotoResourceUri' customHeight: $ref: '#/components/schemas/PhotoResourceUri' additionalProperties: false ResourceListViewModel: type: object properties: metadata: type: string nullable: true pageCount: type: string description: "Actual number of records on the current search results page. This must be set by the view in order\r\ \nfor paging to work." nullable: true previousPageStart: type: string description: The counter value for the start of the previous search results page. nullable: true readOnly: true pageSize: type: string description: Requested number of records for the current search results page. nullable: true pageStart: type: string description: The counter value for the start of the current search results page. nullable: true nextPageStart: type: string description: The counter value for the start of the next search results page. nullable: true readOnly: true totalCount: type: integer format: int32 pageStartOffset: type: integer description: "The page start offset. Since sources are generally 0 based and the view\r\ndefaults to 1 based, our\ \ offset defaults to -1." format: int32 format: $ref: '#/components/schemas/ViewFormats' xhtmlTitle: type: string nullable: true readOnly: true resources: type: array items: $ref: '#/components/schemas/UriResourceWithTitle' nullable: true additionalProperties: false UriResourceWithTitle: type: object properties: href: type: string format: uri nullable: true name: type: string nullable: true additionalProperties: false VersionListViewModel: type: object properties: metadata: type: string nullable: true pageCount: type: string description: "Actual number of records on the current search results page. This must be set by the view in order\r\ \nfor paging to work." nullable: true previousPageStart: type: string description: The counter value for the start of the previous search results page. nullable: true readOnly: true pageSize: type: string description: Requested number of records for the current search results page. nullable: true pageStart: type: string description: The counter value for the start of the current search results page. nullable: true nextPageStart: type: string description: The counter value for the start of the next search results page. nullable: true readOnly: true totalCount: type: integer format: int32 pageStartOffset: type: integer description: "The page start offset. Since sources are generally 0 based and the view\r\ndefaults to 1 based, our\ \ offset defaults to -1." format: int32 format: $ref: '#/components/schemas/ViewFormats' listModel: $ref: '#/components/schemas/IVersionList' listViewModel: type: array items: $ref: '#/components/schemas/VersionViewModel' nullable: true title: type: string nullable: true current: $ref: '#/components/schemas/VersionViewModel' supportedVersions: type: array items: $ref: '#/components/schemas/VersionViewModel' nullable: true readOnly: true serviceVersion: type: string nullable: true domainCoreVersion: type: string nullable: true environment: type: string nullable: true additionalProperties: false description: "{\r\n \"DisplayTitle\" : \"Version List Model\",\r\n \"TargetSchema\" : [{\"target\" : \"EWSE.VersionList\"\ }],\r\n \"TargetOperationId\" : [\"VersionList\"],\r\n \"OriginatingSchema\" : [{ \"source\" : \"hardcoded\"\ \ }]\r\n}" VersionModel: type: object properties: key: type: string nullable: true metadata: type: string nullable: true versionNumber: type: string nullable: true isCurrent: type: boolean additionalProperties: false VersionViewModel: type: object properties: metadata: type: string nullable: true pageCount: type: string description: "Actual number of records on the current search results page. This must be set by the view in order\r\ \nfor paging to work." nullable: true previousPageStart: type: string description: The counter value for the start of the previous search results page. nullable: true readOnly: true pageSize: type: string description: Requested number of records for the current search results page. nullable: true pageStart: type: string description: The counter value for the start of the current search results page. nullable: true nextPageStart: type: string description: The counter value for the start of the next search results page. nullable: true readOnly: true totalCount: type: integer format: int32 pageStartOffset: type: integer description: "The page start offset. Since sources are generally 0 based and the view\r\ndefaults to 1 based, our\ \ offset defaults to -1." format: int32 format: $ref: '#/components/schemas/ViewFormats' versionNumber: type: string nullable: true readOnly: true href: type: string format: uri nullable: true readOnly: true additionalProperties: false description: "{\r\n \"DisplayTitle\" : \"Version Model\",\r\n \"TargetSchema\" : [{\"target\" : \"EWSE.Version\"\ }],\r\n \"TargetOperationId\" : [\"Version\"],\r\n \"OriginatingSchema\" : [{ \"source\" : \"hardcoded\" }]\r\ \n}" ViewFormats: enum: - 1 - 2 - 3 - 5 type: integer format: int32