{"openapi":"3.0.0","servers":[{"url":"https://app.pureaccess.com/api/v2/","description":"Production"},{"url":"https://preview.pureaccess.com/api/v2/","description":"Developer Preview"}],"info":{"description":"All times are UTC. Rate limiting can vary by endpoint. \n\nChangelog 1.0.6 \n- Updated base URLs ","version":"1.0.6","title":"Pure Access API v2","contact":{"email":"product@isonas.com"}},"paths":{"/accesspoints":{"get":{"tags":["Access Points"],"description":"Returns all access points for the Pure Access tenant associated with the API token.","parameters":[{"$ref":"#/components/parameters/accessPointIdsParam"},{"$ref":"#/components/parameters/includeDisabledParam"},{"name":"macAddress","in":"query","description":"Filter result set by specific MAC address.","required":false,"schema":{"type":"string"}},{"name":"name","in":"query","description":"Filter result set by specific access point name.","required":false,"schema":{"type":"string"}},{"name":"model","in":"query","description":"Filter result set by device type.","required":false,"schema":{"type":"string","enum":["RC_02","RC_03","RC_04","SCHLAGE_RC","IPBR_1","IPBR_2","NDE","NDE_B","LE","LE_B","LE_BMB","LE_BMD","LE_BMS","LE_MD","LE_MS","SC","SC_B","UNKNOWN"]}},{"$ref":"#/components/parameters/areaIdParam"},{"$ref":"#/components/parameters/accessPointGroupIdsParam"},{"$ref":"#/components/parameters/createdStartDateTimeParam"},{"$ref":"#/components/parameters/createdEndDateTimeParam"},{"$ref":"#/components/parameters/updatedStartDateTimeParam"},{"$ref":"#/components/parameters/updatedEndDateTimeParam"},{"$ref":"#/components/parameters/limitParam"},{"$ref":"#/components/parameters/offsetParam"}],"responses":{"200":{"$ref":"#/components/responses/accessPointsResponse"},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"},"429":{"$ref":"#/components/responses/TooManyRequests"},"500":{"$ref":"#/components/responses/InternalServerError"}}}},"/accesspoints/{accessPointId}":{"get":{"tags":["Access Points"],"description":"Returns information about the specified access point.","parameters":[{"$ref":"#/components/parameters/accessPointIdPathParam"}],"responses":{"200":{"$ref":"#/components/responses/accessPointsResponse"},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"},"429":{"$ref":"#/components/responses/TooManyRequests"},"500":{"$ref":"#/components/responses/InternalServerError"}}}},"/accesspoints/compile":{"put":{"tags":["Access Points"],"description":"A method used to update all devices with the most current data configured in Pure Access. This method works identically to the \"update access points\" button in Pure Access, compiling all user, credential, and schedule information and sending it down to all devices connected to the tenant (essentially syncs the data in Pure Access with the local database on the devices.) Since this operation is resource intensive, a rolling rate limit of `four requests per hour` is enforced. This not only safeguards against bursts of traffic to maximize the stability of the system, but also helps protect the flash memory of the devices from excessive read/write cycles.\n\nGiven the relatively low rate limit enforced on this endpoint, it is recommended that you first process all of the changes needed for the system, then send the compile request to update all devices only if needed.                        ","responses":{"202":{"description":"Sends a compile to update the local database on all access points currently connected to the Pure Access tenant associated with the API token."},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"},"429":{"$ref":"#/components/responses/TooManyRequests"},"500":{"$ref":"#/components/responses/InternalServerError"}}}},"/accesspoints/status":{"get":{"tags":["Access Points"],"description":"A method to retrieve the state of an access point specified by the access point id. The state of an access point contains data such as door sense status (Closed, Open, Unknown), lock status (Locked, Unlocked, Scheduled), state (Normal, Unlocked, LockedDown, Offline), etc.","parameters":[{"$ref":"#/components/parameters/accessPointIdsParam"},{"$ref":"#/components/parameters/accessPointGroupIdsParam"}],"responses":{"200":{"$ref":"#/components/responses/accessPointStateResponse"},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"},"429":{"$ref":"#/components/responses/TooManyRequests"},"500":{"$ref":"#/components/responses/InternalServerError"}}}},"/accesspoints/commands":{"put":{"tags":["Access Points"],"description":"A method that allows you to manipulate the current \"state\" or access mode of the access point. This will override the current state of the reader in Pure Access. There are 4 different states available in this method -\n\n**Unlock** - Unlocks the specified access point(s). The access point state will reset to its normal schedule at midnight.\n\n**Lockdown** - Locks down the specified access point(s). Access points moved to a lockdown state will remain lockdown until the access point is moved to another state. Locked down access points will ignore any unlock schedules and will decline all badges except for master badges.\n\n**Schedule** - Returns an access point to its schedule based on the current day and time as specified in Pure Access.\n\n**Admit** - Unlocks a door for the \"latch interval\" configured for the specified access point.\n\n**Clear Tamper** - Clears the tamper alert for the specified access point. Schlage RC only.","responses":{"200":{"$ref":"#/components/responses/commandsResponse"},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"},"429":{"$ref":"#/components/responses/TooManyRequests"},"500":{"$ref":"#/components/responses/InternalServerError"}},"requestBody":{"$ref":"#/components/requestBodies/commandsRequest"}}},"/accesspointgroups":{"get":{"tags":["Access Point Groups"],"description":"Returns all access point groups for the Pure Access tenant associated with the API token.","parameters":[{"$ref":"#/components/parameters/accessPointGroupIdsParam"},{"$ref":"#/components/parameters/limitParam"},{"$ref":"#/components/parameters/offsetParam"}],"responses":{"200":{"$ref":"#/components/responses/accessPointGroupsResponse"},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"},"429":{"$ref":"#/components/responses/TooManyRequests"},"500":{"$ref":"#/components/responses/InternalServerError"}}},"post":{"tags":["Access Point Groups"],"description":"Adds a new access point group.","responses":{"201":{"$ref":"#/components/responses/accessPointGroupsResponse"},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"409":{"$ref":"#/components/responses/Conflict"},"429":{"$ref":"#/components/responses/TooManyRequests"},"500":{"$ref":"#/components/responses/InternalServerError"}},"requestBody":{"$ref":"#/components/requestBodies/accessPointGroupsRequest"}},"put":{"tags":["Access Point Groups"],"description":"Overwrites parameters for one or multiple access point groups. This method requires you to specify all of the editable parameters related to the access point groups you are editing. If an editable field is left out of a PUT request it will be nulled out.","responses":{"200":{"$ref":"#/components/responses/accessPointGroupsResponse"},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"},"429":{"$ref":"#/components/responses/TooManyRequests"},"500":{"$ref":"#/components/responses/InternalServerError"}},"requestBody":{"$ref":"#/components/requestBodies/accessPointGroupsUpdateRequest"}},"patch":{"tags":["Access Point Groups"],"description":"Updates specified fields for one or multiple access point groups. Parameters not included in the PATCH request will not be modified.","responses":{"200":{"$ref":"#/components/responses/accessPointGroupsResponse"},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"},"429":{"$ref":"#/components/responses/TooManyRequests"},"500":{"$ref":"#/components/responses/InternalServerError"}},"requestBody":{"$ref":"#/components/requestBodies/accessPointGroupsPatchRequest"}}},"/accesspointgroups/commands":{"put":{"tags":["Access Point Groups"],"description":"A method that allows you to manipulate the current \"state\" or access mode of the access point. This will override the current state of the reader in Pure Access. There are 4 different states available in this method -\n\n**Unlock** - Unlocks the specified access point(s). The access point state will reset to its normal schedule at midnight.\n\n**Lockdown** - Locks down the specified access point(s). Access points moved to a lockdown state will remain lockdown until the access point is moved to another state. Locked down access points will ignore any unlock schedules and will decline all badges except for master badges.\n\n**Schedule** - Returns an access point to its schedule based on the current day and time as specified in Pure Access.\n\n**Admit** - Unlocks a door for the \"latch interval\" configured for the specified access point.\n\n**Clear Tamper** - Clears the tamper alert for the specified access point. Schlage RC only.","responses":{"200":{"$ref":"#/components/responses/commandsResponse"},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"},"429":{"$ref":"#/components/responses/TooManyRequests"},"500":{"$ref":"#/components/responses/InternalServerError"}},"requestBody":{"$ref":"#/components/requestBodies/commandsRequest"}}},"/accesspointgroups/{accessPointGroupId}":{"get":{"tags":["Access Point Groups"],"description":"Returns information about a specific access point group.","parameters":[{"$ref":"#/components/parameters/accessPointGroupIdPathParam"}],"responses":{"200":{"$ref":"#/components/responses/accessPointGroupsResponse"},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"},"429":{"$ref":"#/components/responses/TooManyRequests"},"500":{"$ref":"#/components/responses/InternalServerError"}}},"delete":{"tags":["Access Point Groups"],"description":"Deletes a specific access point group.","parameters":[{"$ref":"#/components/parameters/accessPointGroupIdPathParam"}],"responses":{"204":{"description":"Success, no content needed in response"},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"},"429":{"$ref":"#/components/responses/TooManyRequests"},"500":{"$ref":"#/components/responses/InternalServerError"}}}},"/accesspointgroups/{accessPointGroupId}/accesspoints":{"get":{"tags":["Access Point Groups"],"description":"Returns all access points within a specific access point group.","parameters":[{"$ref":"#/components/parameters/accessPointGroupIdPathParam"}],"responses":{"200":{"$ref":"#/components/responses/accessPointIdListResponse"},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"},"429":{"$ref":"#/components/responses/TooManyRequests"},"500":{"$ref":"#/components/responses/InternalServerError"}}},"put":{"tags":["Access Point Groups"],"description":"Overwrites the list of access points included in the specified access point group. After a PUT to this endpoint, the access point group will only contain the access points IDs included in this request.","parameters":[{"$ref":"#/components/parameters/accessPointGroupIdPathParam"}],"responses":{"200":{"$ref":"#/components/responses/accessPointIdListResponse"},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"},"429":{"$ref":"#/components/responses/TooManyRequests"},"500":{"$ref":"#/components/responses/InternalServerError"}},"requestBody":{"$ref":"#/components/requestBodies/accessPointIdListUpdateRequest"}},"post":{"tags":["Access Point Groups"],"description":"This method will **add** the specified access points to the access point group. For example, if the access point group contains access point IDs 1, 2, and 3 and your POST request contains access point IDs 4 and 5, the access point group will contain access point IDs 1, 2, 3, 4, and 5 after the POST request.","parameters":[{"$ref":"#/components/parameters/accessPointGroupIdPathParam"}],"responses":{"200":{"$ref":"#/components/responses/accessPointIdListResponse"},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"},"429":{"$ref":"#/components/responses/TooManyRequests"},"500":{"$ref":"#/components/responses/InternalServerError"}},"requestBody":{"$ref":"#/components/requestBodies/accessPointIdListUpdateRequest"}},"delete":{"tags":["Access Point Groups"],"description":"This method will **delete** the specified access points from the access point group. For example, if the access point group contains access point IDs 1, 2, 3, 4, and 5 and your DELETE request contains access point IDs 4 and 5, the access point group will contain access point IDs 1, 2, and 3, after the DELETE request.","parameters":[{"$ref":"#/components/parameters/accessPointGroupIdPathParam"},{"in":"query","name":"accessPointIds","description":"The list of access point IDs to delete.","schema":{"type":"array","items":{"type":"integer","example":"1234, 4567"},"description":"An array of access point IDs for the specified resource."},"explode":false}],"responses":{"204":{"description":"Success, no content needed in response"},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"},"429":{"$ref":"#/components/responses/TooManyRequests"},"500":{"$ref":"#/components/responses/InternalServerError"}}}},"/usergroups":{"get":{"tags":["User Groups"],"description":"Returns all user groups for the Pure Access tenant associated with the API token.","parameters":[{"$ref":"#/components/parameters/userGroupIdsParam"},{"$ref":"#/components/parameters/limitParam"},{"$ref":"#/components/parameters/offsetParam"}],"responses":{"200":{"$ref":"#/components/responses/userGroupsResponse"},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"},"429":{"$ref":"#/components/responses/TooManyRequests"},"500":{"$ref":"#/components/responses/InternalServerError"}}},"post":{"tags":["User Groups"],"description":"Adds a new user group.","responses":{"201":{"$ref":"#/components/responses/userGroupsResponse"},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"409":{"$ref":"#/components/responses/Conflict"},"429":{"$ref":"#/components/responses/TooManyRequests"},"500":{"$ref":"#/components/responses/InternalServerError"}},"requestBody":{"$ref":"#/components/requestBodies/userGroupsRequest"}},"put":{"tags":["User Groups"],"description":"Overwrites parameters for one or multiple user groups. This method requires you to specify all of the editable parameters related to the user groups you are editing. If an editable field is left out of a PUT request it will be nulled out.","responses":{"200":{"$ref":"#/components/responses/userGroupsResponse"},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"},"429":{"$ref":"#/components/responses/TooManyRequests"},"500":{"$ref":"#/components/responses/InternalServerError"}},"requestBody":{"$ref":"#/components/requestBodies/userGroupsUpdateRequest"}},"patch":{"tags":["User Groups"],"description":"Updates a user group. Parameters not included in the PATCH request will not be modified.","parameters":[{"$ref":"#/components/parameters/userIdsParam"}],"responses":{"200":{"$ref":"#/components/responses/userGroupsResponse"},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"},"429":{"$ref":"#/components/responses/TooManyRequests"},"500":{"$ref":"#/components/responses/InternalServerError"}},"requestBody":{"$ref":"#/components/requestBodies/userGroupsUpdateRequest"}}},"/users":{"get":{"tags":["Users"],"description":"Returns all users for the Pure Access tenant associated with the API token.","parameters":[{"$ref":"#/components/parameters/userIdsParam"},{"$ref":"#/components/parameters/includeDisabledParam"},{"$ref":"#/components/parameters/includeImagesParam"},{"in":"query","name":"search","required":false,"description":"Searches all users on firstName, lastName, credentials, userDefininedFields, and username.","schema":{"type":"string"}},{"$ref":"#/components/parameters/userGroupIdParam"},{"$ref":"#/components/parameters/createdStartDateTimeParam"},{"$ref":"#/components/parameters/createdEndDateTimeParam"},{"$ref":"#/components/parameters/updatedStartDateTimeParam"},{"$ref":"#/components/parameters/updatedEndDateTimeParam"},{"in":"query","name":"limit","description":"maximum number of records to return, the max limit is 50 records if images are included via the \"includeImages\" parameter or 500 if images are not included.","schema":{"type":"integer","format":"int32","minimum":1,"maximum":500}},{"$ref":"#/components/parameters/offsetParam"}],"responses":{"200":{"$ref":"#/components/responses/usersResponse"},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"},"429":{"$ref":"#/components/responses/TooManyRequests"},"500":{"$ref":"#/components/responses/InternalServerError"}}},"post":{"tags":["Users"],"description":"Adds new user(s) to the Pure Access tenant associated with the API token.","responses":{"201":{"$ref":"#/components/responses/usersResponse"},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"409":{"$ref":"#/components/responses/Conflict"},"429":{"$ref":"#/components/responses/TooManyRequests"},"500":{"$ref":"#/components/responses/InternalServerError"}},"requestBody":{"$ref":"#/components/requestBodies/usersRequest"}},"put":{"tags":["Users"],"description":"Overwrites parameters for one or multiple users. This method requires you to specify all of the editable parameters related to the users you are editing. If an editable field is left out of a PUT request it will be nulled out.","responses":{"200":{"$ref":"#/components/responses/usersResponse"},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"},"429":{"$ref":"#/components/responses/TooManyRequests"},"500":{"$ref":"#/components/responses/InternalServerError"}},"requestBody":{"$ref":"#/components/requestBodies/usersUpdateRequest"}},"patch":{"tags":["Users"],"description":"Updates specified fields for one or multiple users. Parameters not included in the PATCH request will not be modified.","responses":{"200":{"$ref":"#/components/responses/usersResponse"},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"},"429":{"$ref":"#/components/responses/TooManyRequests"},"500":{"$ref":"#/components/responses/InternalServerError"}},"requestBody":{"$ref":"#/components/requestBodies/usersUpdateRequest"}}},"/users/userdefinedfields":{"get":{"tags":["Users"],"description":"Returns all of the configured user defined fields that can be sent when creating a user.","responses":{"200":{"$ref":"#/components/responses/userDefinedFieldsResponse"},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"},"429":{"$ref":"#/components/responses/TooManyRequests"},"500":{"$ref":"#/components/responses/InternalServerError"}}}},"/usergroups/{userGroupId}":{"get":{"tags":["User Groups"],"description":"Returns information about a specific user group.","parameters":[{"in":"path","name":"userGroupId","required":true,"schema":{"type":"integer","format":"int32"}}],"responses":{"200":{"$ref":"#/components/responses/userGroupsResponse"},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"},"429":{"$ref":"#/components/responses/TooManyRequests"},"500":{"$ref":"#/components/responses/InternalServerError"}}},"delete":{"tags":["User Groups"],"description":"Deletes the specified user group.","parameters":[{"in":"path","name":"userGroupId","required":true,"schema":{"type":"integer","format":"int32"}}],"responses":{"204":{"description":"Success, no content needed in response."},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"},"429":{"$ref":"#/components/responses/TooManyRequests"},"500":{"$ref":"#/components/responses/InternalServerError"}}}},"/usergroups/{userGroupId}/users":{"get":{"tags":["User Groups"],"description":"Returns all users within a specific user group.","parameters":[{"in":"path","name":"userGroupId","description":"accessPointGroupId","required":true,"schema":{"type":"integer","format":"int32"}}],"responses":{"200":{"$ref":"#/components/responses/userIdListResponse"},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"},"429":{"$ref":"#/components/responses/TooManyRequests"},"500":{"$ref":"#/components/responses/InternalServerError"}}},"put":{"tags":["User Groups"],"description":"Overwrites the list of users included in the specified user group. After a PUT to this endpoint, the user group will only contain the user IDs included in this request.","parameters":[{"in":"path","name":"userGroupId","required":true,"schema":{"type":"integer","format":"int32"}}],"responses":{"200":{"$ref":"#/components/responses/userIdListResponse"},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"},"429":{"$ref":"#/components/responses/TooManyRequests"},"500":{"$ref":"#/components/responses/InternalServerError"}},"requestBody":{"$ref":"#/components/requestBodies/userIdListUpdateRequest"}},"post":{"tags":["User Groups"],"description":"This method will **add** the specified users to the user group. For example, if the user group contains IDs 1, 2, and 3 and your POST request contains user IDs 4 and 5, the user group will contain user IDs 1, 2, 3, 4, and 5 after the POST request.","parameters":[{"in":"path","name":"userGroupId","required":true,"schema":{"type":"integer","format":"int32"}}],"responses":{"200":{"$ref":"#/components/responses/userIdListResponse"},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"},"429":{"$ref":"#/components/responses/TooManyRequests"},"500":{"$ref":"#/components/responses/InternalServerError"}},"requestBody":{"$ref":"#/components/requestBodies/userIdListUpdateRequest"}},"delete":{"tags":["User Groups"],"description":"This method will **delete** the specified users from the user group. For example, if the user group contains access point IDs 1, 2, 3, 4, and 5 and your DELETE request contains user IDs 4 and 5, the user group will contain user IDs 1, 2, and 3, after the DELETE request.","parameters":[{"in":"path","name":"userGroupId","description":"userGroupId","required":true,"schema":{"type":"integer","format":"int32"}},{"in":"query","name":"userIds","description":"The list of user IDs to delete from the user group.","schema":{"type":"array","items":{"type":"integer","example":"1234, 4567"}},"explode":false}],"responses":{"204":{"description":"Success, no content needed in response"},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"},"429":{"$ref":"#/components/responses/TooManyRequests"},"500":{"$ref":"#/components/responses/InternalServerError"}}}},"/credentials":{"get":{"tags":["Credentials"],"description":"Returns all credentials for the Pure Access tenant associated with the API token.","parameters":[{"$ref":"#/components/parameters/credentialIdsParam"},{"$ref":"#/components/parameters/includeDisabledParam"},{"$ref":"#/components/parameters/userIdsParam"},{"$ref":"#/components/parameters/credentialTypeParam"},{"$ref":"#/components/parameters/searchParam"},{"$ref":"#/components/parameters/createdStartDateTimeParam"},{"$ref":"#/components/parameters/createdEndDateTimeParam"},{"$ref":"#/components/parameters/updatedStartDateTimeParam"},{"$ref":"#/components/parameters/updatedEndDateTimeParam"},{"$ref":"#/components/parameters/limitParam"},{"$ref":"#/components/parameters/offsetParam"}],"responses":{"200":{"$ref":"#/components/responses/credentialsResponse"},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"},"429":{"$ref":"#/components/responses/TooManyRequests"},"500":{"$ref":"#/components/responses/InternalServerError"}}},"post":{"tags":["Credentials"],"description":"Add credential(s) for the user IDs specified in the request. For non-ENGAGE linked tenants, if the correct bitmask is set on the tenant, you do not need to specify a raw value for the credential. If you send a single credential to this endpoint, it will be sent to the appropriate device(s) automatically based on the user's access. Once a tenant is linked to ENGAGE, you will be required to specify a credential format along with all other credential information associated with that format. After linking, you can no longer send displayValue and rawValue.","responses":{"201":{"$ref":"#/components/responses/credentialsResponse"},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"409":{"$ref":"#/components/responses/Conflict"},"429":{"$ref":"#/components/responses/TooManyRequests"},"500":{"$ref":"#/components/responses/InternalServerError"}},"requestBody":{"$ref":"#/components/requestBodies/credentialsRequest"}},"patch":{"tags":["Credentials"],"description":"Updates credential(s) for the user IDs specified in the request. For non-ENGAGE linked tenants, if the correct bitmask is set on the tenant, you do not need to specify a raw value for the credential. If you send a single credential to this endpoint, it will be sent to the appropriate device(s) automatically based on the user's access. Once a tenant is linked to ENGAGE, you will be required to specify a credential format along with all other credential information associated with that format. After linking, you can no longer send displayValue and rawValue.","responses":{"200":{"$ref":"#/components/responses/credentialsResponse"},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"},"429":{"$ref":"#/components/responses/TooManyRequests"},"500":{"$ref":"#/components/responses/InternalServerError"}},"requestBody":{"$ref":"#/components/requestBodies/credentialsUpdateRequest"}}},"/credentials/{credentialId}":{"get":{"tags":["Credentials"],"description":"Returns information about the specified credential ID.","parameters":[{"$ref":"#/components/parameters/credentialIdPathParam"}],"responses":{"200":{"$ref":"#/components/responses/credentialsResponse"},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"},"429":{"$ref":"#/components/responses/TooManyRequests"},"500":{"$ref":"#/components/responses/InternalServerError"}}}},"/users/{userId}":{"get":{"tags":["Users"],"description":"Returns information about the specified user ID.","parameters":[{"$ref":"#/components/parameters/userIdPathParam"},{"$ref":"#/components/parameters/includeImagesParam"}],"responses":{"200":{"$ref":"#/components/responses/usersResponse"},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"},"429":{"$ref":"#/components/responses/TooManyRequests"},"500":{"$ref":"#/components/responses/InternalServerError"}}}},"/users/{userId}/usergroups":{"get":{"tags":["Users"],"description":"Returns all of the user groups that the specified user ID belongs to.","parameters":[{"$ref":"#/components/parameters/userIdPathParam"}],"responses":{"200":{"$ref":"#/components/responses/userGroupIdListResponse"},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"},"429":{"$ref":"#/components/responses/TooManyRequests"},"500":{"$ref":"#/components/responses/InternalServerError"}}},"put":{"tags":["Users"],"description":"Overwrites the list of user groups that the specified user ID belongs to. After a PUT to this endpoint, the user will only be a member of the user groups included in this request.","parameters":[{"$ref":"#/components/parameters/userIdPathParam"}],"responses":{"200":{"$ref":"#/components/responses/userGroupIdListResponse"},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"},"429":{"$ref":"#/components/responses/TooManyRequests"},"500":{"$ref":"#/components/responses/InternalServerError"}},"requestBody":{"$ref":"#/components/requestBodies/userGroupIdListUpdateRequest"}},"post":{"tags":["Users"],"description":"This method will **add** the specified user ID to the user groups specified in the request. For example, if a user belongs to user group IDs 1, 2, and 3 and your POST request contains user group IDs 4 and 5, the user will belong to user group IDs 1, 2, 3, 4, and 5 after the POST request.","parameters":[{"$ref":"#/components/parameters/userIdPathParam"}],"responses":{"200":{"$ref":"#/components/responses/userGroupIdListResponse"},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"},"429":{"$ref":"#/components/responses/TooManyRequests"},"500":{"$ref":"#/components/responses/InternalServerError"}},"requestBody":{"$ref":"#/components/requestBodies/userGroupIdListUpdateRequest"}},"delete":{"tags":["Users"],"description":"This method will **delete** the specified user ID to the user groups specified in the request. For example, if a user belongs to user group IDs 1, 2, 3, 4, and 5 and your DELETE request contains user group IDs 4 and 5, the user will belong to user group IDs 1, 2, and 3 after the DELETE request.","parameters":[{"$ref":"#/components/parameters/userIdPathParam"},{"$ref":"#/components/parameters/userGroupIdsParam"}],"responses":{"204":{"description":"Success, no content needed in response"},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"},"429":{"$ref":"#/components/responses/TooManyRequests"},"500":{"$ref":"#/components/responses/InternalServerError"}}}},"/history":{"get":{"tags":["History"],"description":"Returns event history for the Pure Access tenant associated with the API token.","parameters":[{"$ref":"#/components/parameters/eventTypesParam"},{"$ref":"#/components/parameters/userIdsParam"},{"$ref":"#/components/parameters/userGroupIdsParam"},{"$ref":"#/components/parameters/accessPointIdsParam"},{"$ref":"#/components/parameters/accessPointGroupIdsParam"},{"$ref":"#/components/parameters/credentialDisplayValuesParam"},{"$ref":"#/components/parameters/searchParam"},{"$ref":"#/components/parameters/credentialTypeParam"},{"$ref":"#/components/parameters/eventStartDateTimeParam"},{"$ref":"#/components/parameters/eventEndDateTimeParam"},{"$ref":"#/components/parameters/limitParam"},{"$ref":"#/components/parameters/offsetParam"}],"responses":{"200":{"$ref":"#/components/responses/historyResponse"},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"},"429":{"$ref":"#/components/responses/TooManyRequests"},"500":{"$ref":"#/components/responses/InternalServerError"}}}}},"components":{"parameters":{"accessPointIdPathParam":{"in":"path","name":"accessPointId","required":true,"schema":{"type":"integer"},"description":"The unique identifier for the access point."},"setStatePathParam":{"in":"path","name":"setState","required":true,"schema":{"type":"string","enum":["admit","lockdown","schedule","unlock"]},"description":"Set State:\n * `admit` Perform an admit against the specified access point.\n * `lockdown` Set the specified access point to lockdown.\n * `schedule` Set the specified access point to schedule.\n * `unlock` Set the specified access point to unlocked.\n"},"accessPointGroupIdPathParam":{"in":"path","name":"accessPointGroupId","required":true,"schema":{"type":"integer"},"description":"The unique identifier for the access point group."},"credentialIdPathParam":{"in":"path","name":"credentialId","required":true,"schema":{"type":"integer"},"description":"The unique identifier for the credential."},"userIdPathParam":{"in":"path","name":"userId","required":true,"schema":{"type":"integer"},"description":"The unique identifier for the user."},"userGroupIdPathParam":{"in":"path","name":"userGroupId","required":true,"schema":{"type":"integer"},"description":"The unique identifier for the user group."},"accessPointIdsParam":{"in":"query","name":"accessPointIds","required":false,"description":"An array of access point IDs.","schema":{"type":"array","items":{"type":"integer"}},"explode":false},"accessPointGroupIdsParam":{"in":"query","name":"accessPointGroupIds","required":false,"description":"An array of access point group IDs.","schema":{"type":"array","items":{"type":"integer"}},"explode":false},"credentialDisplayValuesParam":{"in":"query","name":"credentialDisplayValues","required":false,"description":"An array of credential display values.","schema":{"type":"array","items":{"type":"integer"}},"explode":false},"credentialTypeParam":{"in":"query","name":"credentialType","description":"Filter result set by credential type.","required":false,"schema":{"type":"string","enum":["Badge","Keypad","Bluetooth"]}},"credentialIdsParam":{"in":"query","name":"credentialIds","required":false,"description":"An array of credential IDs.","schema":{"type":"array","items":{"type":"integer"}},"explode":false},"searchParam":{"name":"search","in":"query","required":false,"description":"The value specified here searches on the displayValue of the credential. See model ``Credential`` for definition of displayValue. Whatever value is specified in the search parameter will return credentials that displayValue's match the searches value. For ENGAGE credentials, displayValue will be automatically populated with either the Badge ID or Hotstamp value.","schema":{"type":"string"},"explode":false},"eventTypesParam":{"in":"query","name":"eventTypes","required":false,"schema":{"type":"array","items":{"type":"string","enum":["Approve","LockDown","Unlock","Admit","Normal","OffLine","AUXAdmit","REXAdmit","ExtendedOpen","CompileSend","CompileComplete","CompileFailed","ToggleUnlock","ToggleLock","StatusOnly","DeclineNoBadge","DeclineNoTimezone","DeclineLockdown","DeclineTamper","DatabaseToError","InternalError","Unknown","DeviceDisconnect","DeviceConnect","AutoUnlock","BadgeUnlock","UnlockIntervalEnd","FullSyncComplete","DeclineApproved","LockDownEnd","CredentialOne_Accepted","CredentialOne_TwoFactorTimeout","CredentialOne_TwoFactorProcessError","CredentialOne_BadPin","CredentialTwo_Accepted","CredentialTwo_NoCredentialFound","CredentialTwo_NoAuthorizedSchedule","CredentialTwo_DeviceInLockdown","CredentialTwo_TwoFactorTimeout","CredentialTwo_TwoFactorProcessError","CredentialTwo_BadPin","CardPin_Accepted","CardPin_PinTimeout","CardPin_TwoFactorProcessError","CardPin_BadPin","ScheduledLockStart","ScheduledLockEnd","ScheduledAutoUnlockStart","ScheduledAutoUnlockEnd","ScheduledBadgeUnlockStart","ScheduledBadgeUnlockEnd","ScheduledLockdownStart","ScheduledLockdownEnd","ScheduledEventsEndAll"]}}},"userIdParam":{"in":"query","name":"userId","required":false,"schema":{"type":"integer"},"description":"The unique identifier for the user."},"userIdsParam":{"in":"query","name":"userIds","required":false,"description":"An array of user IDs.","schema":{"type":"array","items":{"type":"integer"}},"explode":false},"accessPointGroupIdParam":{"in":"query","name":"accessPointGroupId","required":false,"schema":{"type":"integer"},"description":"The unique identifier for the access point group."},"userGroupIdParam":{"in":"query","name":"userGroupId","required":false,"schema":{"type":"integer"},"description":"The unique identifier for the user group."},"userGroupIdsParam":{"in":"query","name":"userGroupIds","required":false,"description":"An array of user group IDs.","schema":{"type":"array","items":{"type":"integer"}},"explode":false},"areaIdParam":{"in":"query","name":"areaId","required":false,"schema":{"type":"integer"},"description":"The primary area associated with the record."},"includeDisabledParam":{"in":"query","name":"includeDisabled","required":false,"schema":{"type":"boolean"},"description":"If true, the request will return records that are both active and inactive."},"includeImagesParam":{"in":"query","name":"includeImages","required":false,"schema":{"type":"boolean"},"description":"If true, the record(s) are returned with images if they are present. Request will only return a maximum of 50 records if true. Requests will return 500 records if false."},"createdStartDateTimeParam":{"in":"query","name":"createdStartDateTime","required":false,"schema":{"type":"string","format":"yyyy-MM-dd'T'HH:mm:ss"},"description":"The specified start date time when looking up records by created date time. If no end date time is specified all records equal to or after the start date time will be returned.","example":"2019-09-14T09:24:38"},"createdEndDateTimeParam":{"in":"query","name":"createdEndDateTime","required":false,"schema":{"type":"string","format":"yyyy-MM-dd'T'HH:mm:ss"},"description":"The specified end date time used when looking up records by updated date time. If no start date time is specified all records equal to or before the end date time will be returned.","example":"2019-09-14T09:24:38"},"eventStartDateTimeParam":{"in":"query","name":"eventStartDateTime","required":true,"schema":{"type":"string","format":"yyyy-MM-dd'T'HH:mm:ss"},"description":"The specified start date time when looking up records by event date time. If no end date time is specified all records equal to or after the start date time will be returned. The event date range cannot span more than 1 day (24 hours) at a time.","example":"2019-09-14T09:24:38"},"eventEndDateTimeParam":{"in":"query","name":"eventEndDateTime","required":true,"schema":{"type":"string","format":"yyyy-MM-dd'T'HH:mm:ss"},"description":"The specified end date time used when looking up records by event date time. If no start date time is specified all records equal to or before the end date time will be returned. The event date range cannot span more than 1 day (24 hours) at a time.","example":"2019-09-14T09:24:38"},"updatedStartDateTimeParam":{"in":"query","name":"updatedStartDateTime","required":false,"schema":{"type":"string","format":"yyyy-MM-dd'T'HH:mm:ss"},"description":"The specified start date time when looking up records by updated date time. If no end date time is specified all records equal to or after the start date time will be returned.","example":"2019-09-14T09:24:38"},"updatedEndDateTimeParam":{"in":"query","name":"updatedEndDateTime","required":false,"schema":{"type":"string","format":"yyyy-MM-dd'T'HH:mm:ss"},"description":"The specified end date time used when looking up records by created date time. If no start date time is specified all records equal to or before the end date time will be returned.","example":"2019-09-14T09:24:38"},"offsetParam":{"in":"query","name":"offset","required":false,"schema":{"type":"integer","minimum":0},"description":"The number of records to offset for pagination."},"limitParam":{"in":"query","name":"limit","required":false,"schema":{"type":"integer","minimum":1,"maximum":500,"default":50},"description":"The number of records to return per request for pagination (Min = 1, Max =500)"}},"requestBodies":{"accessPointIdListUpdateRequest":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/accessPointIdListObject"}}}},"accessPointGroupsRequest":{"content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/accessPointGroupObject"}}}}},"accessPointGroupsUpdateRequest":{"content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/accessPointGroupUpdateObject"}}}}},"accessPointGroupsPatchRequest":{"content":{"application/merge-patch+json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/accessPointGroupUpdateObject"}}}}},"credentialsRequest":{"content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/credentialObject"}}}}},"credentialsUpdateRequest":{"content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/credentialPatchObject"}}}}},"commandsRequest":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/commandObject"},{"$ref":"#/components/schemas/admitCommandObject"}],"discriminator":{"propertyName":"command"}},"examples":{"Basic":{"$ref":"#/components/examples/BasicCommand"},"Admit":{"$ref":"#/components/examples/AdmitCommand"},"Lockdown":{"$ref":"#/components/examples/LockdownCommand"},"Schedule":{"$ref":"#/components/examples/ScheduleCommand"},"Unlock":{"$ref":"#/components/examples/UnlockCommand"},"Clear Tamper":{"$ref":"#/components/examples/ClearTamperCommand"}}}}},"usersRequest":{"content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/userObject"}}}}},"usersUpdateRequest":{"content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/userUpdateObject"}}}}},"userGroupsRequest":{"content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/userGroupObject"}}}}},"userGroupsUpdateRequest":{"content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/userGroupUpdateObject"}}}}},"userGroupIdListUpdateRequest":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/userGroupIdListObject"}}}},"userIdListUpdateRequest":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/userIdListObject"}}}}},"responses":{"accessPointsResponse":{"description":"search results matching criteria","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/accessPointObject"}}}}},"accessPointStateResponse":{"description":"access point state","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/accessPointStateObject"}}}}},"accessPointIdListResponse":{"description":"access point ID list response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/accessPointIdListObject"}}}},"credentialsResponse":{"description":"search results matching criteria","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/credentialObject"}}}}},"commandsResponse":{"description":"access point state","content":{"application/json":{"schema":{"$ref":"#/components/schemas/commandObject"}}}},"userGroupIdListResponse":{"description":"user group ID list response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/userGroupIdListObject"}}}},"usersResponse":{"description":"Users Result","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/userObject"}}}}},"userDefinedFieldsResponse":{"description":"user ID list response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/userDefinedFieldsResponseObject"}}}},"userIdListResponse":{"description":"user ID list response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/userIdListObject"}}}},"accessPointGroupsResponse":{"description":"response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/accessPointGroupObject"}}}}},"historyResponse":{"description":"History response.","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/historyObject"}}}}},"userGroupsResponse":{"description":"user groups response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/accessPointGroupObject"}}}}},"BadRequest":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/errorResponseObject"},"examples":{"Example":{"$ref":"#/components/examples/Error400"}}}}},"Unauthorized":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/errorResponseObject"},"examples":{"Example":{"$ref":"#/components/examples/Error401"}}}}},"Forbidden":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/errorResponseObject"},"examples":{"Example":{"$ref":"#/components/examples/Error403"}}}}},"NotFound":{"description":"The specified resource was not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/errorResponseObject"},"examples":{"Example":{"$ref":"#/components/examples/Error404"}}}}},"Conflict":{"description":"The specified resource is in a conflicted state.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/errorResponseObject"},"examples":{"Example":{"$ref":"#/components/examples/Error409"}}}}},"TooManyRequests":{"description":"The specified resource is in a conflicted state.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/errorResponseObject"},"examples":{"Example":{"$ref":"#/components/examples/Error429"}}}}},"InternalServerError":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/errorResponseObject"},"examples":{"Example":{"$ref":"#/components/examples/Error500"}}}}}},"examples":{"BasicCommand":{"value":[{"id":1,"command":2}]},"AdmitCommand":{"value":[{"id":1,"command":"admit","latchInterval":5}]},"LockdownCommand":{"value":[{"id":1,"command":"lockdown"}]},"ScheduleCommand":{"value":[{"id":1,"command":"schedule"}]},"UnlockCommand":{"value":[{"id":1,"command":"unlock"}]},"ClearTamperCommand":{"value":[{"id":1,"command":"clearTamper"}]},"Error400":{"value":{"timestamp":"2019-10-17T22:27:47.983+0000","status":400,"error":"Bad request","message":"Access point ID was not specified in request.","path":"/api/v2/accesspoint/32249"}},"Error401":{"value":{"timestamp":"2019-10-17T22:27:47.983+0000","status":401,"error":"Unauthorized","message":"The request requires user authentication or, if the request included authorization credentials, authorization has been refused for those credentials.","path":"/api/v2/accesspoint/32249"}},"Error403":{"value":{"timestamp":"2019-10-17T22:27:47.983+0000","status":403,"error":"Forbidden","message":"The server understood the request, but is refusing to fulfill it. The server cannot fulfill the request because you do not have permission to access this resource and/or perform this action.","path":"/api/v2/accesspoint/32249"}},"Error404":{"value":{"status":"Not Found","message":"accesspoint(s) not found with id(s) : '32244'","error":["error occurred"]}},"Error409":{"value":{"timestamp":"2019-10-17T22:27:47.983+0000","status":409,"error":"Conflict","message":"The user group already has a list of users.","path":"/api/v2/accesspoint/32249"}},"Error429":{"value":{"timestamp":"2019-10-17T22:27:47.983+0000","status":429,"error":"Too many requests.","message":"Rate Limit Reached. Check headers for additional information.","path":"/api/v2/accesspoint/32249"}},"Error500":{"value":{"timestamp":"2019-10-17T22:27:47.983+0000","status":500,"error":"Internal Server Error","message":"You should never receive this error because our clever coders catch them all … but if you are unlucky enough to get one, please report it to us via email: support@isonas.com.","path":"/api/v2/accesspoint/32249"}}},"schemas":{"accessPointGroupObject":{"type":"object","required":["id"],"properties":{"id":{"type":"integer","readOnly":true,"format":"int64","description":"The unique ID of the access point group.","example":589648516},"name":{"type":"string","readOnly":false,"description":"The name of the access point group."},"description":{"type":"string","readOnly":false,"description":"The description of the access point group.","example":"Employee and Customer External Doors"},"areaId":{"type":"integer","readOnly":true,"format":"int64","description":"The unique identifier of the primary area of the access point group."},"createdTime":{"type":"string","readOnly":true,"description":"The date-time value that represents when the access point group record was created."},"updatedTime":{"type":"string","readOnly":true,"description":"The date-time value that represents when the access point group record was last updated."}}},"accessPointGroupUpdateObject":{"type":"object","properties":{"id":{"type":"integer","format":"int64","description":"The unique identifier of the access point group.","example":1265818},"name":{"type":"string","readOnly":false,"description":"The name of the access point group."},"description":{"type":"string","readOnly":false,"description":"The description of the access point group.","example":"Employee and Customer External Doors"},"areaId":{"type":"integer","readOnly":true,"format":"int64","description":"The unique identifier of the primary area of the access point group."},"createdTime":{"type":"string","readOnly":true,"description":"The date-time value that represents when the access point group record was created."},"updatedTime":{"type":"string","readOnly":true,"description":"The date-time value that represents when the access point group record was last updated."}}},"accessPointObject":{"type":"object","properties":{"id":{"type":"integer","example":2345,"nullable":false,"readOnly":true,"description":"The unique ID of the access point."},"name":{"type":"string","example":"An Accesspoint","nullable":true,"readOnly":true,"description":"The name of the access point."},"description":{"type":"string","example":"This is an access point description.","nullable":true,"readOnly":true,"description":"The description that the access point was given."},"macAddress":{"type":"string","example":"0018C8500183","nullable":true,"readOnly":true,"description":"The MAC address of the access point."},"serialNumber":{"type":"string","example":"0000000000000000A10000000F12BA8E","nullable":true,"readOnly":true,"description":"The serial number of the access point. 32"},"model":{"type":"string","example":"RC_04","nullable":true,"readOnly":true,"description":"The model type of the access point.","enum":["RC_02","RC_03","RC_04","SCHLAGE_RC","IPBR_1","IPBR_2","NDE","NDE_B","LE","LE_B","LE_BMB","LE_BMD","LE_BMS","LE_MD","LE_MS","SC","SC_B","UNKNOWN"]},"isDisabled":{"type":"boolean","example":false,"nullable":true,"readOnly":true,"description":"Determines if the access point is disabled or enabled."},"areaId":{"type":"integer","example":5555,"nullable":true,"readOnly":true,"description":"The unique identifier of the primary area the access point belongs to."},"ipBridgeDoorIdentifier":{"type":"integer","example":1,"nullable":true,"readOnly":true,"description":"The index of the access point that is connected to an IPBridge device. Always returns 1 for if  the model is not a  type of IP-Bridge."},"createdTime":{"type":"string","example":"2019-09-16T16:38:17.268","nullable":true,"readOnly":true,"description":"The time the access point was created."},"updatedTime":{"type":"string","example":"2019-09-16T16:38:17.268","nullable":true,"readOnly":true,"description":"The time the access point was last updated."}}},"accessPointIdListObject":{"type":"object","properties":{"accessPointIds":{"type":"array","items":{"type":"integer"},"example":[1234,4321],"description":"An array of access point IDs for the specified resource."}}},"accessPointStateObject":{"type":"object","properties":{"accessPointId":{"type":"integer","example":1234,"nullable":false,"readOnly":true,"description":"The unique ID of the access point."},"state":{"type":"string","example":"Schedule","nullable":true,"readOnly":true,"description":"state:\n * `Offline` The device is currently offline.\n * `LockedDown` Set the specified access point to lockdown.\n * `Schedule` Set the specified access point to schedule.\n * `Unlocked` Set the specified access point to unlocked.\n * `Locked` Set the specified access point to locked. This state is only applicable to Engage Devices.\n","default":"Schedule","enum":["Offline","LockedDown","Schedule","Unlocked","Locked"]},"lockStatus":{"type":"string","example":"Locked","nullable":true,"readOnly":true,"enum":["Locked","Unlocked"]},"openStatus":{"type":"string","example":"Unknown","nullable":true,"readOnly":true,"enum":["Unknown","Closed","Open"]},"lastOpenStatusTime":{"type":"string","example":"2019-09-16T19:21:21.923","description":"The last time that the device went from closed to open.","nullable":true,"readOnly":true},"isConnected":{"type":"boolean","example":true,"readOnly":true},"lastConnectedTime":{"type":"string","example":"2019-09-16T19:21:21.923","description":"The last time that the device was conected.","nullable":true,"readOnly":true},"createdTime":{"type":"string","example":"2019-09-16T16:38:17.268","nullable":true,"readOnly":true,"description":"The time the access point was created."},"updatedTime":{"type":"string","example":"2019-09-16T16:38:17.268","nullable":true,"readOnly":true,"description":"The time the access point was last updated."}}},"commandObject":{"type":"array","items":{"type":"object","properties":{"id":{"type":"integer","example":1234,"nullable":false,"description":"The unique ID of the access point."},"command":{"type":"string","example":"schedule","nullable":true,"description":"state:\n * `admit` Perform an admit against the specified access point.\n * `lockdown` Set the specified access point to lockdown.\n * `schedule` Set the specified access point to schedule.\n * `unlock` Set the specified access point to unlocked.\n","default":"schedule","enum":["admit","lockdown","schedule","unlock"]}}}},"admitCommandObject":{"allOf":[{"$ref":"#/components/schemas/commandObject"}],"type":"array","items":{"properties":{"latchInterval":{"type":"integer","example":5,"description":"The length of the latch interval in seconds."}}}},"historyObject":{"type":"object","properties":{"id":{"type":"integer","example":2345,"description":"The unique ID of the history event.","nullable":false,"readOnly":true},"accesspointId":{"type":"integer","example":27390,"description":"The ID of the access point where the history event occurred.","nullable":true,"readOnly":true},"accesspointName":{"type":"string","example":"An access point name.","nullable":true,"readOnly":true,"description":"The access point name where history event occurred."},"eventType":{"type":"string","example":"Admit","nullable":true,"readOnly":true,"description":"The type of event that occurred at the access point."},"eventDescription":{"type":"string","example":"Admit","nullable":true,"readOnly":true,"description":"The description of the type of event that occurred at the access point."},"eventTime":{"type":"string","example":"2019-09-16T19:21:21.923","description":"The time that the event occurred.","nullable":true,"readOnly":true},"credentialDisplayValue":{"type":"string","example":"A credential value.","description":"The credential value that caused the history event.","nullable":true,"readOnly":true},"credentialType":{"type":"string","example":"Badge","description":"The credential type.","nullable":true,"readOnly":true,"enum":["Badge","KeypadEntry","Electronic","ExternalDevice"]},"userId":{"type":"integer","example":2345,"nullable":true,"readOnly":true,"description":"The ID of the user that triggered the history event."},"displayName":{"type":"string","example":"User last Name, User First Name","nullable":true,"readOnly":true,"description":"The display name of the user that triggered the event."},"createdTime":{"type":"string","example":"2019-09-16T19:21:21.920","description":"The time the history event was created.","nullable":true,"readOnly":true}}},"userGroupObject":{"type":"object","properties":{"id":{"type":"integer","readOnly":true,"example":43394},"name":{"type":"string","description":"The name of the user group. Names must be unique.","example":"Middle School Teachers"},"description":{"type":"string","description":"The description of the user group.","example":"Teachers with access to Middle School Doors"},"areaId":{"type":"integer","readOnly":true,"example":4145},"createdTime":{"type":"string","readOnly":true,"example":"2019-09-17T16:32:24.074"},"updatedTime":{"type":"string","readOnly":true,"example":"2019-09-17T16:32:24.074"}}},"userGroupUpdateObject":{"type":"object","properties":{"id":{"type":"integer","example":43394},"name":{"type":"string","description":"The name of the user group. Names must be unique.","example":"Middle School Teachers"},"description":{"type":"string","description":"The description of the user group.","example":"Teachers with access to Middle School Doors"},"areaId":{"type":"integer","readOnly":true,"example":4145},"createdTime":{"type":"string","readOnly":true,"example":"2019-09-17T16:32:24.074"},"updatedTime":{"type":"string","readOnly":true,"example":"2019-09-17T16:32:24.074"}}},"userObject":{"type":"object","required":["firstName","lastName"],"properties":{"id":{"type":"integer","readOnly":true,"example":861307},"areaId":{"type":"integer","readOnly":false,"example":4179},"firstName":{"type":"string","example":"FirstName"},"middleInitial":{"type":"string","example":"MiddleInitial"},"lastName":{"type":"string","example":"LastName"},"employeeId":{"type":"string","example":"55-555-5555"},"role":{"type":"string","readOnly":true,"example":"CardHolder"},"isDisabled":{"type":"boolean","example":false},"notificationEmail":{"type":"string","example":"example@example.com"},"userDefinedFields":{"type":"array","items":{"type":"object","properties":{"id":{"type":"integer","example":0},"fieldName":{"type":"string","readOnly":true,"example":"Location"},"value":{"type":"string","example":"Boulder"}}}},"profileImageId":{"type":"integer","format":"byte","example":1},"userImage":{"type":"string","format":"byte","example":"U3dhZ2dlciByb2Nrcw=="},"createdTime":{"type":"string","readOnly":true,"example":"2019-09-16T15:16:52.322"},"updatedTime":{"type":"string","readOnly":true,"example":"2019-09-16T15:16:52.322"}}},"userUpdateObject":{"type":"object","required":["firstName","lastName"],"properties":{"id":{"type":"integer","example":861307},"areaId":{"type":"integer","readOnly":false,"example":4179},"firstName":{"type":"string","example":"FirstName"},"middleInitial":{"type":"string","example":"MiddleInitial"},"lastName":{"type":"string","example":"LastName"},"employeeId":{"type":"string","example":"55-555-5555"},"role":{"type":"string","readOnly":true,"example":"CardHolder"},"isDisabled":{"type":"boolean","example":false},"notificationEmail":{"type":"string","example":"example@example.com"},"userDefinedFields":{"type":"array","items":{"type":"object","properties":{"id":{"type":"integer","example":861307},"fieldName":{"type":"string","readOnly":true,"example":4179},"value":{"type":"string","example":4179}}}},"userImage":{"type":"string","format":"byte","example":"U3dhZ2dlciByb2Nrcw=="},"createdTime":{"type":"string","readOnly":true,"example":"2019-09-16T15:16:52.322"},"updatedTime":{"type":"string","readOnly":true,"example":"2019-09-16T15:16:52.322"}}},"userDefinedFieldsResponseObject":{"type":"object","properties":{"userDefinedFields":{"type":"array","items":{"type":"object","properties":{"id":{"type":"integer","example":861307},"fieldName":{"type":"string","readOnly":true,"example":4179}}}}}},"userIdListObject":{"type":"object","properties":{"userIds":{"type":"array","items":{"type":"integer"},"example":[1234,4321],"description":"An array of access point IDs for the specified resource."}}},"userGroupIdListObject":{"type":"object","properties":{"userGroupIds":{"type":"array","items":{"type":"integer"},"example":[1234,4321],"description":"An array of access point IDs for the specified resource."}}},"credentialObject":{"type":"object","required":["userId","credentialType","displayValue"],"properties":{"id":{"type":"integer","readOnly":true,"example":861307},"rawValue":{"type":"string","example":"000000000000000000000000000008AE","description":"The raw value of the credential."},"displayValue":{"type":"string","example":"2121","description":"The display value of the credential."},"userId":{"type":"string","example":861304,"description":"The unique ID of the user that the credential belongs to. You cannot change the userId once it has been set.  If the userID was set incorrectly you must disable the credential and create a new one with the correct userID."},"credentialType":{"type":"string","example":"Keypad","description":"The type of credential.","enum":["Keypad","Badge","Bluetooth","SchlageMobile"]},"entryLimitEnabled":{"type":"boolean","example":false,"description":"Determines if the credential has a set number of times that it can be used before it is disabled."},"entryLimit":{"type":"integer","example":5,"description":"Determines the number of times the credential can be used for entry."},"timeLimitEnabled":{"type":"boolean","example":false,"description":"Determines if the credential has a time limit associated."},"limitStartDate":{"type":"string","example":"2019-09-13T09:24:38.815","description":"The time that represents when the credential can start being used."},"limitEndDate":{"type":"string","example":"2019-09-13T09:24:38.815","description":"The time that represents when the credential will stop being enabled."},"isDisabled":{"type":"boolean","example":false,"description":"Determines whether the credential is enabled or disabled."},"disableReason":{"type":"string","example":"TimeLimit","readOnly":true,"description":"The explanation if the credential was programmatically disabled.","enum":["TimeLimit","EntryLimit"]},"isMaster":{"type":"boolean","example":false,"description":"Determines whether the credential is a master badge."},"isToggle":{"type":"boolean","example":false,"description":"Determines whether the credential is a toggle badge."},"isTwoFactorCredential":{"type":"boolean","example":true,"description":"Determines whether the credential has two factor enabled."},"twoFactorPIN":{"type":"string","example":"861304","writeOnly":true,"description":"This field is required if twoFactorCredential is true. The value must be 4-9 digits long."},"createdTime":{"type":"string","readOnly":true,"example":"2019-09-16T15:16:52.322"},"updatedTime":{"type":"string","readOnly":true,"example":"2019-09-16T15:16:52.322"},"formatId":{"type":"integer","example":21,"description":"Format Ids:\n * `0` Legacy Credential, Format Unknown, will not work with ENGAGE devices\n * `2` 26A\n * `13` 35C\n * `19` 37X\n * `21` 37H\n * `22` ISAONS Prox - HID Compatible\n * `25` 33D\n * `26` 48X\n * `27` 28G\n * `28` 28H\n * `29` ISAONS EV2\n * `30` 32X\n * `31` 40X\n * `32` 37P\n * `33` 34N\n * `34` 36L\n * `35` 37B\n * `36` 32K\n * `37` 36M\n * `38` 36B\n * `39` 36C\n * `40` 36X\n * `41` 34S\n * `42` 35X\n","enum":[0,2,13,19,21,22,25,26,27,28,29,31,32,33,34,35,36,37,38,39,40,41,42]},"badgeId":{"type":"integer","example":861307},"facilityCode":{"type":"integer","example":861307},"issueLevel":{"type":"integer","example":861307},"hotStamp":{"type":"integer","example":861307},"mobileNumber":{"description":"Used only with Schlage Mobile credentials. Cannot be used for the ISONAS mobile credential.","type":"integer","example":3034445555}}},"credentialPatchObject":{"type":"object","required":["userId","credentialType","displayValue"],"properties":{"id":{"type":"integer","example":861307},"rawValue":{"type":"string","example":"000000000000000000000000000008AE","description":"The raw value of the credential."},"displayValue":{"type":"string","example":"2121","description":"The display value of the credential."},"credentialType":{"type":"string","example":"Keypad","description":"The type of credential.","enum":["Keypad","Badge","Bluetooth"]},"entryLimitEnabled":{"type":"boolean","example":false,"description":"Determines if the credential has a set number of times that it can be used before it is disabled."},"entryLimit":{"type":"integer","example":5,"description":"Determines the number of times the credential can be used for entry."},"timeLimitEnabled":{"type":"boolean","example":false,"description":"Determines if the credential has a time limit associated."},"limitStartDate":{"type":"string","example":"2019-09-13T09:24:38.815","description":"The time that represents when the credential can start being used."},"limitEndDate":{"type":"string","example":"2019-09-13T09:24:38.815","description":"The time that represents when the credential will stop being enabled."},"isDisabled":{"type":"boolean","example":false,"description":"Determines whether the credential is enabled or disabled."},"disableReason":{"type":"string","example":"TimeLimit","readOnly":true,"description":"The explanation if the credential was programmatically disabled.","enum":["TimeLimit","EntryLimit"]},"isMaster":{"type":"boolean","example":false,"description":"Determines whether the credential is a master badge."},"isToggle":{"type":"boolean","example":false,"description":"Determines whether the credential is a toggle badge."},"isTwoFactorCredential":{"type":"boolean","example":true,"description":"Determines whether the credential has two factor enabled."},"twoFactorPIN":{"type":"string","example":"86130","writeOnly":true,"description":"This field is required if twoFactorCredential is true. The value must be 4-9 digits long."},"createdTime":{"type":"string","readOnly":true,"example":"2019-09-16T15:16:52.322"},"updatedTime":{"type":"string","readOnly":true,"example":"2019-09-16T15:16:52.322"}}},"errorResponseObject":{"type":"object","properties":{"timestamp":{"type":"string","example":"2019-10-17T22:27:47.983+0000"},"status":{"type":"integer","example":400},"error":{"type":"string","example":"Bad request"},"errors":{"type":"array","items":{"type":"object","properties":{"codes":{"type":"array","items":{"type":"string"}},"arugments":{"type":"array","items":{"type":"object","properties":{"codes":{"type":"array","items":{"type":"string"}},"arguments":{"type":"string"},"defaultMessage":{"type":"string"},"code":{"type":"string"}}}},"defaultMessage":{"type":"integer"},"objectName":{"type":"integer"},"field":{"type":"integer"},"rejectedValue":{"type":"integer"},"bindingFailure":{"type":"integer"},"code":{"type":"integer"}}}},"message":{"type":"string","example":"The name, a required field is missing."},"path":{"type":"string","example":"/api/v2/accesspoint/32249"}}}}}}