doorflow 1.0.1 → 1.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (194) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +14 -0
  3. data/README.md +222 -316
  4. data/bin/post-generate +3 -1
  5. data/doorflow.gemspec +1 -1
  6. data/lib/doorflow-api/api/accounts_api.rb +1 -1
  7. data/lib/doorflow-api/api/admission_requests_api.rb +2 -2
  8. data/lib/doorflow-api/api/card_designs_api.rb +347 -0
  9. data/lib/doorflow-api/api/card_template_types_api.rb +350 -0
  10. data/lib/doorflow-api/api/card_templates_api.rb +811 -0
  11. data/lib/doorflow-api/api/channels_api.rb +11 -11
  12. data/lib/doorflow-api/api/credential_types_api.rb +1 -1
  13. data/lib/doorflow-api/api/credentials_api.rb +6 -6
  14. data/lib/doorflow-api/api/element_sessions_api.rb +90 -0
  15. data/lib/doorflow-api/api/events_api.rb +2 -2
  16. data/lib/doorflow-api/api/group_reservations_api.rb +68 -5
  17. data/lib/doorflow-api/api/groups_api.rb +1 -1
  18. data/lib/doorflow-api/api/notification_rules_api.rb +7 -7
  19. data/lib/doorflow-api/api/oauth_api.rb +1 -1
  20. data/lib/doorflow-api/api/people_api.rb +7 -7
  21. data/lib/doorflow-api/api/reservations_api.rb +5 -5
  22. data/lib/doorflow-api/api/roles_api.rb +1 -1
  23. data/lib/doorflow-api/api/sites_api.rb +1 -1
  24. data/lib/doorflow-api/api/sync_api.rb +4 -4
  25. data/lib/doorflow-api/api_client.rb +8 -4
  26. data/lib/doorflow-api/api_error.rb +9 -14
  27. data/lib/doorflow-api/api_model_base.rb +1 -1
  28. data/lib/doorflow-api/configuration.rb +1 -1
  29. data/lib/doorflow-api/models/account.rb +1 -1
  30. data/lib/doorflow-api/models/account_passport.rb +1 -1
  31. data/lib/doorflow-api/models/account_reseller.rb +1 -1
  32. data/lib/doorflow-api/models/account_sync.rb +1 -1
  33. data/lib/doorflow-api/models/account_user.rb +1 -1
  34. data/lib/doorflow-api/models/admission_request.rb +1 -1
  35. data/lib/doorflow-api/models/admission_request_door_controller.rb +1 -1
  36. data/lib/doorflow-api/models/admission_request_person.rb +1 -1
  37. data/lib/doorflow-api/models/admit_channel202_response.rb +1 -1
  38. data/lib/doorflow-api/models/admit_person202_response.rb +1 -1
  39. data/lib/doorflow-api/models/admit_person403_response.rb +1 -1
  40. data/lib/doorflow-api/models/admit_person_request.rb +1 -1
  41. data/lib/doorflow-api/models/auto_unlock_channel400_response.rb +1 -1
  42. data/lib/doorflow-api/models/auto_unlock_channel_request.rb +1 -1
  43. data/lib/doorflow-api/models/card_design.rb +243 -0
  44. data/lib/doorflow-api/models/card_design_image_back.rb +179 -0
  45. data/lib/doorflow-api/models/card_design_image_front.rb +179 -0
  46. data/lib/doorflow-api/models/card_design_input.rb +181 -0
  47. data/lib/doorflow-api/models/card_template.rb +475 -0
  48. data/lib/doorflow-api/models/card_template_input.rb +147 -0
  49. data/lib/doorflow-api/models/card_template_input_card_template.rb +347 -0
  50. data/lib/doorflow-api/models/card_template_type.rb +321 -0
  51. data/lib/doorflow-api/models/card_template_type_input.rb +147 -0
  52. data/lib/doorflow-api/models/card_template_type_input_card_template_type.rb +251 -0
  53. data/lib/doorflow-api/models/card_template_type_input_card_template_type_non_printable_zones_inner.rb +183 -0
  54. data/lib/doorflow-api/models/card_template_type_non_printable_zones_inner.rb +188 -0
  55. data/lib/doorflow-api/models/channel.rb +1 -1
  56. data/lib/doorflow-api/models/channel_auto_unlock.rb +1 -1
  57. data/lib/doorflow-api/models/channel_lockdown.rb +1 -1
  58. data/lib/doorflow-api/models/channel_lockdown_aux_lockdown.rb +1 -1
  59. data/lib/doorflow-api/models/channel_lockdown_card_lockdown.rb +1 -1
  60. data/lib/doorflow-api/models/channel_lockdown_rex_lockdown.rb +1 -1
  61. data/lib/doorflow-api/models/channel_mode.rb +1 -1
  62. data/lib/doorflow-api/models/channel_sync.rb +5 -2
  63. data/lib/doorflow-api/models/{create_credential422_response.rb → create_card_design422_response.rb} +5 -5
  64. data/lib/doorflow-api/models/{create_credential422_response_errors.rb → create_card_design422_response_errors.rb} +4 -4
  65. data/lib/doorflow-api/models/credential.rb +4 -4
  66. data/lib/doorflow-api/models/credential_input.rb +1 -1
  67. data/lib/doorflow-api/models/credential_input_person_credential.rb +1 -1
  68. data/lib/doorflow-api/models/credential_type.rb +1 -1
  69. data/lib/doorflow-api/models/credential_update_input.rb +1 -1
  70. data/lib/doorflow-api/models/credential_update_input_person_credential.rb +1 -1
  71. data/lib/doorflow-api/models/{delete_group_reservation200_response.rb → delete_card_design200_response.rb} +4 -4
  72. data/lib/doorflow-api/models/delete_card_template_type409_response.rb +147 -0
  73. data/lib/doorflow-api/models/element_session.rb +192 -0
  74. data/lib/doorflow-api/models/element_session_config.rb +265 -0
  75. data/lib/doorflow-api/models/element_session_error.rb +199 -0
  76. data/lib/doorflow-api/models/element_session_input.rb +271 -0
  77. data/lib/doorflow-api/models/element_session_member.rb +186 -0
  78. data/lib/doorflow-api/models/error.rb +1 -1
  79. data/lib/doorflow-api/models/event.rb +1 -1
  80. data/lib/doorflow-api/models/get_access_token200_response.rb +1 -1
  81. data/lib/doorflow-api/models/get_access_token400_response.rb +1 -1
  82. data/lib/doorflow-api/models/get_access_token401_response.rb +1 -1
  83. data/lib/doorflow-api/models/get_admission_request401_response.rb +1 -1
  84. data/lib/doorflow-api/models/get_admission_request403_response.rb +1 -1
  85. data/lib/doorflow-api/models/get_admission_request404_response.rb +1 -1
  86. data/lib/doorflow-api/models/get_admission_request500_response.rb +1 -1
  87. data/lib/doorflow-api/models/get_token_info200_response.rb +1 -1
  88. data/lib/doorflow-api/models/get_token_info200_response_application.rb +1 -1
  89. data/lib/doorflow-api/models/get_token_info401_response.rb +1 -1
  90. data/lib/doorflow-api/models/group.rb +1 -1
  91. data/lib/doorflow-api/models/group_reservation.rb +1 -1
  92. data/lib/doorflow-api/models/group_reservation_input.rb +1 -1
  93. data/lib/doorflow-api/models/group_reservation_input_group_reservation.rb +1 -1
  94. data/lib/doorflow-api/models/initiate_sync429_response.rb +1 -1
  95. data/lib/doorflow-api/models/linked_file.rb +217 -0
  96. data/lib/doorflow-api/models/list_events400_response.rb +1 -1
  97. data/lib/doorflow-api/models/lockdown_channel_request.rb +1 -1
  98. data/lib/doorflow-api/models/notification_rule.rb +1 -1
  99. data/lib/doorflow-api/models/notification_rule_actions_inner.rb +1 -1
  100. data/lib/doorflow-api/models/notification_rule_conditions_inner.rb +1 -1
  101. data/lib/doorflow-api/models/notification_rule_events_inner.rb +1 -1
  102. data/lib/doorflow-api/models/notification_rule_input.rb +1 -1
  103. data/lib/doorflow-api/models/person.rb +30 -8
  104. data/lib/doorflow-api/models/person_input.rb +1 -1
  105. data/lib/doorflow-api/models/reservation.rb +1 -1
  106. data/lib/doorflow-api/models/reservation_input.rb +1 -1
  107. data/lib/doorflow-api/models/revoke_token403_response.rb +1 -1
  108. data/lib/doorflow-api/models/role.rb +1 -1
  109. data/lib/doorflow-api/models/site.rb +1 -1
  110. data/lib/doorflow-api/models/site_site_ips_inner.rb +1 -1
  111. data/lib/doorflow-api/models/unlock_channel_request.rb +1 -1
  112. data/lib/doorflow-api/version.rb +2 -2
  113. data/lib/doorflow-api.rb +28 -9
  114. data/lib/doorflow.rb +7 -2
  115. metadata +43 -164
  116. data/spec/api/admission_requests_api_spec.rb +0 -47
  117. data/spec/api/channels_api_spec.rb +0 -174
  118. data/spec/api/credential_types_api_spec.rb +0 -49
  119. data/spec/api/group_reservations_api_spec.rb +0 -75
  120. data/spec/api/oauth_api_spec.rb +0 -97
  121. data/spec/doorflow/client_spec.rb +0 -109
  122. data/spec/doorflow/webhooks/event_spec.rb +0 -117
  123. data/spec/doorflow/webhooks/handler_spec.rb +0 -154
  124. data/spec/doorflow/webhooks/signature_verifier_spec.rb +0 -210
  125. data/spec/doorflow/webhooks/support.rb +0 -18
  126. data/spec/doorflow_spec.rb +0 -22
  127. data/spec/fixtures/vcr_cassettes/channel/list.yml +0 -70
  128. data/spec/fixtures/vcr_cassettes/channel/retrieve.yml +0 -131
  129. data/spec/fixtures/vcr_cassettes/person/auto_pagination.yml +0 -87
  130. data/spec/fixtures/vcr_cassettes/person/create.yml +0 -64
  131. data/spec/fixtures/vcr_cassettes/person/delete.yml +0 -125
  132. data/spec/fixtures/vcr_cassettes/person/list.yml +0 -90
  133. data/spec/fixtures/vcr_cassettes/person/not_found.yml +0 -62
  134. data/spec/fixtures/vcr_cassettes/person/retrieve.yml +0 -136
  135. data/spec/fixtures/vcr_cassettes/person/update.yml +0 -260
  136. data/spec/fixtures/vcr_cassettes/person/validation_error.yml +0 -62
  137. data/spec/integration/channel_spec.rb +0 -88
  138. data/spec/integration/person_spec.rb +0 -99
  139. data/spec/models/account_passport_spec.rb +0 -42
  140. data/spec/models/account_reseller_spec.rb +0 -60
  141. data/spec/models/account_sync_spec.rb +0 -52
  142. data/spec/models/account_user_spec.rb +0 -54
  143. data/spec/models/admission_request_door_controller_spec.rb +0 -42
  144. data/spec/models/admission_request_person_spec.rb +0 -42
  145. data/spec/models/admission_request_spec.rb +0 -82
  146. data/spec/models/admit_channel202_response_spec.rb +0 -46
  147. data/spec/models/admit_person202_response_spec.rb +0 -46
  148. data/spec/models/admit_person403_response_spec.rb +0 -42
  149. data/spec/models/admit_person_request_spec.rb +0 -36
  150. data/spec/models/auto_unlock_channel400_response_spec.rb +0 -42
  151. data/spec/models/auto_unlock_channel_request_spec.rb +0 -36
  152. data/spec/models/channel_auto_unlock_spec.rb +0 -42
  153. data/spec/models/channel_lockdown_aux_lockdown_spec.rb +0 -36
  154. data/spec/models/channel_lockdown_card_lockdown_spec.rb +0 -36
  155. data/spec/models/channel_lockdown_rex_lockdown_spec.rb +0 -36
  156. data/spec/models/channel_lockdown_spec.rb +0 -54
  157. data/spec/models/channel_mode_spec.rb +0 -52
  158. data/spec/models/channel_sync_spec.rb +0 -46
  159. data/spec/models/create_credential422_response_errors_spec.rb +0 -48
  160. data/spec/models/create_credential422_response_spec.rb +0 -42
  161. data/spec/models/credential_input_person_credential_spec.rb +0 -48
  162. data/spec/models/credential_input_spec.rb +0 -36
  163. data/spec/models/credential_spec.rb +0 -86
  164. data/spec/models/credential_update_input_person_credential_spec.rb +0 -36
  165. data/spec/models/credential_update_input_spec.rb +0 -36
  166. data/spec/models/delete_group_reservation200_response_spec.rb +0 -36
  167. data/spec/models/error_spec.rb +0 -42
  168. data/spec/models/get_access_token200_response_spec.rb +0 -66
  169. data/spec/models/get_access_token400_response_spec.rb +0 -46
  170. data/spec/models/get_access_token401_response_spec.rb +0 -42
  171. data/spec/models/get_admission_request401_response_spec.rb +0 -42
  172. data/spec/models/get_admission_request403_response_spec.rb +0 -42
  173. data/spec/models/get_admission_request404_response_spec.rb +0 -42
  174. data/spec/models/get_admission_request500_response_spec.rb +0 -42
  175. data/spec/models/get_token_info200_response_application_spec.rb +0 -36
  176. data/spec/models/get_token_info200_response_spec.rb +0 -66
  177. data/spec/models/get_token_info401_response_spec.rb +0 -42
  178. data/spec/models/group_reservation_input_group_reservation_spec.rb +0 -54
  179. data/spec/models/group_reservation_input_spec.rb +0 -36
  180. data/spec/models/group_reservation_spec.rb +0 -82
  181. data/spec/models/initiate_sync429_response_spec.rb +0 -52
  182. data/spec/models/list_events400_response_spec.rb +0 -42
  183. data/spec/models/lockdown_channel_request_spec.rb +0 -48
  184. data/spec/models/notification_rule_actions_inner_spec.rb +0 -48
  185. data/spec/models/notification_rule_conditions_inner_spec.rb +0 -48
  186. data/spec/models/notification_rule_events_inner_spec.rb +0 -42
  187. data/spec/models/notification_rule_input_spec.rb +0 -60
  188. data/spec/models/person_input_spec.rb +0 -180
  189. data/spec/models/reservation_input_spec.rb +0 -60
  190. data/spec/models/revoke_token403_response_spec.rb +0 -42
  191. data/spec/models/site_site_ips_inner_spec.rb +0 -36
  192. data/spec/models/unlock_channel_request_spec.rb +0 -36
  193. data/spec/resources/credential_bugs_spec.rb +0 -115
  194. data/spec/spec_helper.rb +0 -160
@@ -1,18 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module WebhookSpecSupport
4
- WEBHOOK_SECRET = 'whsec_test_secret_key'
5
-
6
- SAMPLE_EVENT_HASH = {
7
- action: 'CREATE',
8
- resource: 'https://api.doorflow.com/api/v1/accounts/1/events/42',
9
- resource_type: 'Event',
10
- resource_id: 42,
11
- account_id: 1,
12
- ack_token: 'abc123'
13
- }.freeze
14
-
15
- def compute_signature(timestamp, payload, secret)
16
- OpenSSL::HMAC.hexdigest('SHA256', secret, "#{timestamp}.#{payload}")
17
- end
18
- end
@@ -1,22 +0,0 @@
1
- require 'spec_helper'
2
-
3
- RSpec.describe DoorFlow do
4
- describe '.access_token=' do
5
- it 'sets the access token' do
6
- DoorFlow.access_token = 'test_token'
7
- expect(DoorFlow.access_token).to eq('test_token')
8
- end
9
-
10
- it 'configures the generated client' do
11
- DoorFlow.access_token = 'test_token'
12
- expect(DoorFlow.configuration.access_token).to eq('test_token')
13
- end
14
- end
15
-
16
- describe '.api_base=' do
17
- it 'sets the API base' do
18
- DoorFlow.api_base = 'https://api.test.com'
19
- expect(DoorFlow.api_base).to eq('https://api.test.com')
20
- end
21
- end
22
- end
@@ -1,70 +0,0 @@
1
- ---
2
- http_interactions:
3
- - request:
4
- method: get
5
- uri: https://api.doorflow.com/api/3/channels
6
- body:
7
- encoding: US-ASCII
8
- string: ''
9
- headers:
10
- Content-Type:
11
- - application/json
12
- User-Agent:
13
- - doorflow-ruby/1.0.0
14
- Accept:
15
- - application/json
16
- Authorization:
17
- - "<ACCESS_TOKEN>"
18
- Accept-Encoding:
19
- - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
20
- response:
21
- status:
22
- code: 200
23
- message: OK
24
- headers:
25
- Date:
26
- - Thu, 05 Feb 2026 20:21:52 GMT
27
- Content-Type:
28
- - application/json; charset=utf-8
29
- Content-Length:
30
- - '1111'
31
- Connection:
32
- - keep-alive
33
- Cache-Control:
34
- - max-age=0, private, must-revalidate
35
- Etag:
36
- - W/"548dffeeb5158920a534882c96f449ba"
37
- Referrer-Policy:
38
- - strict-origin-when-cross-origin
39
- Strict-Transport-Security:
40
- - max-age=31536000; includeSubDomains
41
- Vary:
42
- - Origin
43
- X-Cache:
44
- - miss
45
- X-Content-Type-Options:
46
- - nosniff
47
- X-Download-Options:
48
- - noopen
49
- X-Frame-Options:
50
- - ALLOWALL
51
- X-Page:
52
- - '1'
53
- X-Per-Page:
54
- - '500'
55
- X-Permitted-Cross-Domain-Policies:
56
- - none
57
- X-Request-Id:
58
- - 3feec5159c7ed68cbb8bb01d317b7ccc
59
- X-Runtime:
60
- - '0.036802'
61
- X-Total-Results:
62
- - '2'
63
- X-Xss-Protection:
64
- - 1; mode=block
65
- body:
66
- encoding: ASCII-8BIT
67
- string: '[{"id":8114,"name":"Meeting Room","mac_address":"df:df:df:ef:cb:1b","status":"online","unit":1,"model":"A9188","model_long":"Unknown","serial_number":"","card_format":"","pin_format":"","freescale_version":null,"pic_version":null,"reader_device_class_name":"AA-C100-B","site_id":625,"updated_at":"2026-02-05T20:21:13+00:00","created_at":"2024-08-09T11:56:22+01:00","sync":{"status":"sync_complete","last_sync_completed_at":"2025-04-11T20:42:16+01:00"},"lockdown":null,"mode":{"description":"normal","relock_at":null,"change_stamp":null},"auto_unlock":null},{"id":8113,"name":"Front
68
- Door","mac_address":"df:df:df:82:41:ab","status":"online","unit":1,"model":"A9188","model_long":"Unknown","serial_number":"","card_format":"","pin_format":"","freescale_version":null,"pic_version":null,"reader_device_class_name":"AA-C100-B","site_id":625,"updated_at":"2026-02-05T20:21:12+00:00","created_at":"2024-08-09T11:56:22+01:00","sync":{"status":"sync_complete","last_sync_completed_at":"2025-04-11T20:42:17+01:00"},"lockdown":null,"mode":{"description":"normal","relock_at":null,"change_stamp":null},"auto_unlock":null}]'
69
- recorded_at: Thu, 05 Feb 2026 20:21:52 GMT
70
- recorded_with: VCR 6.4.0
@@ -1,131 +0,0 @@
1
- ---
2
- http_interactions:
3
- - request:
4
- method: get
5
- uri: https://api.doorflow.com/api/3/channels?per_page=1
6
- body:
7
- encoding: US-ASCII
8
- string: ''
9
- headers:
10
- Content-Type:
11
- - application/json
12
- User-Agent:
13
- - doorflow-ruby/1.0.0
14
- Accept:
15
- - application/json
16
- Authorization:
17
- - "<ACCESS_TOKEN>"
18
- Accept-Encoding:
19
- - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
20
- response:
21
- status:
22
- code: 200
23
- message: OK
24
- headers:
25
- Date:
26
- - Thu, 05 Feb 2026 21:43:50 GMT
27
- Content-Type:
28
- - application/json; charset=utf-8
29
- Content-Length:
30
- - '557'
31
- Connection:
32
- - keep-alive
33
- Cache-Control:
34
- - max-age=0, private, must-revalidate
35
- Etag:
36
- - W/"fa3ddfab29d4ba9307a1047ec43d1239"
37
- Link:
38
- - <https://api.doorflow.com/api/3/channels?page=2&per_page=1>; rel="last", <https://api.doorflow.com/api/3/channels?page=2&per_page=1>;
39
- rel="next"
40
- Referrer-Policy:
41
- - strict-origin-when-cross-origin
42
- Strict-Transport-Security:
43
- - max-age=31536000; includeSubDomains
44
- Vary:
45
- - Origin
46
- X-Cache:
47
- - miss
48
- X-Content-Type-Options:
49
- - nosniff
50
- X-Download-Options:
51
- - noopen
52
- X-Frame-Options:
53
- - ALLOWALL
54
- X-Page:
55
- - '1'
56
- X-Per-Page:
57
- - '1'
58
- X-Permitted-Cross-Domain-Policies:
59
- - none
60
- X-Request-Id:
61
- - 304323d4151f5ae21c46403457f19c16
62
- X-Runtime:
63
- - '0.031737'
64
- X-Total-Results:
65
- - '2'
66
- X-Xss-Protection:
67
- - 1; mode=block
68
- body:
69
- encoding: UTF-8
70
- string: '[{"id":8114,"name":"Meeting Room","mac_address":"df:df:df:ef:cb:1b","status":"online","unit":1,"model":"A9188","model_long":"Unknown","serial_number":"","card_format":"","pin_format":"","freescale_version":null,"pic_version":null,"reader_device_class_name":"AA-C100-B","site_id":625,"updated_at":"2026-02-05T21:42:34+00:00","created_at":"2024-08-09T11:56:22+01:00","sync":{"status":"sync_complete","last_sync_completed_at":"2025-04-11T20:42:16+01:00"},"lockdown":null,"mode":{"description":"normal","relock_at":null,"change_stamp":null},"auto_unlock":null}]'
71
- recorded_at: Thu, 05 Feb 2026 21:43:50 GMT
72
- - request:
73
- method: get
74
- uri: https://api.doorflow.com/api/3/channels/8114
75
- body:
76
- encoding: US-ASCII
77
- string: ''
78
- headers:
79
- Content-Type:
80
- - application/json
81
- User-Agent:
82
- - doorflow-ruby/1.0.0
83
- Accept:
84
- - application/json
85
- Authorization:
86
- - "<ACCESS_TOKEN>"
87
- Accept-Encoding:
88
- - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
89
- response:
90
- status:
91
- code: 404
92
- message: Not Found
93
- headers:
94
- Date:
95
- - Thu, 05 Feb 2026 21:43:50 GMT
96
- Content-Type:
97
- - application/json; charset=utf-8
98
- Content-Length:
99
- - '95'
100
- Connection:
101
- - keep-alive
102
- Cache-Control:
103
- - no-cache
104
- Referrer-Policy:
105
- - strict-origin-when-cross-origin
106
- Strict-Transport-Security:
107
- - max-age=31536000; includeSubDomains
108
- Vary:
109
- - Origin
110
- X-Cache:
111
- - miss
112
- X-Content-Type-Options:
113
- - nosniff
114
- X-Download-Options:
115
- - noopen
116
- X-Frame-Options:
117
- - ALLOWALL
118
- X-Permitted-Cross-Domain-Policies:
119
- - none
120
- X-Request-Id:
121
- - 420fac64a47fe32c58cbe3f7fd332fa7
122
- X-Runtime:
123
- - '0.014178'
124
- X-Xss-Protection:
125
- - 1; mode=block
126
- body:
127
- encoding: UTF-8
128
- string: '{"error":"The resource you requested could not be found, please check
129
- your url and try again."}'
130
- recorded_at: Thu, 05 Feb 2026 21:43:50 GMT
131
- recorded_with: VCR 6.4.0
@@ -1,87 +0,0 @@
1
- ---
2
- http_interactions:
3
- - request:
4
- method: get
5
- uri: https://api.doorflow.com/api/3/people
6
- body:
7
- encoding: US-ASCII
8
- string: ''
9
- headers:
10
- Content-Type:
11
- - application/json
12
- User-Agent:
13
- - doorflow-ruby/1.0.0
14
- Accept:
15
- - application/json
16
- Authorization:
17
- - "<ACCESS_TOKEN>"
18
- Accept-Encoding:
19
- - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
20
- response:
21
- status:
22
- code: 200
23
- message: OK
24
- headers:
25
- Date:
26
- - Thu, 05 Feb 2026 19:05:51 GMT
27
- Content-Type:
28
- - application/json; charset=utf-8
29
- Content-Length:
30
- - '11246'
31
- Connection:
32
- - keep-alive
33
- Cache-Control:
34
- - max-age=0, private, must-revalidate
35
- Etag:
36
- - W/"6c470fc40508db9ddb61cef2a0f2b46a"
37
- Referrer-Policy:
38
- - strict-origin-when-cross-origin
39
- Strict-Transport-Security:
40
- - max-age=31536000; includeSubDomains
41
- Vary:
42
- - Origin
43
- X-Cache:
44
- - miss
45
- X-Content-Type-Options:
46
- - nosniff
47
- X-Download-Options:
48
- - noopen
49
- X-Frame-Options:
50
- - ALLOWALL
51
- X-Page:
52
- - '1'
53
- X-Per-Page:
54
- - '50'
55
- X-Permitted-Cross-Domain-Policies:
56
- - none
57
- X-Request-Id:
58
- - 1eb7eac1cb391b91fecef568a07bd410
59
- X-Runtime:
60
- - '0.149406'
61
- X-Total-Results:
62
- - '14'
63
- X-Xss-Protection:
64
- - 1; mode=block
65
- body:
66
- encoding: ASCII-8BIT
67
- string: '[{"id":833760,"first_name":"Benjamin","last_name":"Carter","salutation":"","job_title":"","email":"","organisation_id":"","system_id":null,"department":"","enabled":true,"valid_from":null,"valid_to":null,"credentials_number":"","key_fob_number":"","pin":"5641","mobile":"","image_url":"https://doorguard-us-production.s3.amazonaws.com/person/images/833760/medium/0556a7e006d9b99b417598589c987df5f57a11b5.png?1723200983","image_thumbnail_url":"https://doorguard-us-production.s3.amazonaws.com/person/images/833760/thumb/40c3a8b597c01692cc7ebe5c7b08098cc7ef6ef4.png?1723200983","telephone":null,"notes":"Updated
68
- at 2026-02-05 15:52:28 +0000","barcode":"","custom_1":"","custom_2":"","custom_3":"","custom_4":"","custom_5":"","created_at":"2024-08-09T11:56:22+01:00","updated_at":"2026-02-05T19:05:50+00:00","groups":[],"roles":[],"credentials":[{"id":"wmsd1rM","credential_type_id":852,"label":"Credentials
69
- number","person_id":833760,"value":""},{"id":"6ps3Ob9","credential_type_id":854,"label":"Pin","person_id":833760,"value":"5641"},{"id":"qKsXq1N","credential_type_id":853,"label":"Key
70
- fob number","person_id":833760,"value":""}]},{"id":833761,"first_name":"Charlotte","last_name":"Smith","salutation":"","job_title":"","email":"","organisation_id":"","system_id":null,"department":"","enabled":true,"valid_from":null,"valid_to":null,"credentials_number":"5445784562","key_fob_number":"","pin":"","mobile":"","image_url":"https://doorguard-us-production.s3.amazonaws.com/person/images/833761/medium/abffec982cf4b473a8dc82ec666f91e6d10acf2e.png?1723200985","image_thumbnail_url":"https://doorguard-us-production.s3.amazonaws.com/person/images/833761/thumb/9aee440af8519c41591f0b63579d229e95a7a22d.png?1723200985","telephone":null,"notes":"","barcode":"","custom_1":"","custom_2":"","custom_3":"","custom_4":"","custom_5":"","created_at":"2024-08-09T11:56:24+01:00","updated_at":"2024-08-09T18:55:14+01:00","groups":[],"roles":[],"credentials":[{"id":"kEsq32X","credential_type_id":853,"label":"Key
71
- fob number","person_id":833761,"value":""},{"id":"Z0sDYMg","credential_type_id":852,"label":"Credentials
72
- number","person_id":833761,"value":"5445784562"},{"id":"7DsJqMW","credential_type_id":854,"label":"Pin","person_id":833761,"value":""}]},{"id":833762,"first_name":"Alice","last_name":"Johnson","salutation":"","job_title":"","email":"","organisation_id":"","system_id":null,"department":"","enabled":true,"valid_from":null,"valid_to":null,"credentials_number":"5945154368","key_fob_number":"","pin":"","mobile":"","image_url":"https://doorguard-us-production.s3.amazonaws.com/person/images/833762/medium/ff125b29a4d0907d79b8c254269ffb2b46f8fbd1.png?1723200986","image_thumbnail_url":"https://doorguard-us-production.s3.amazonaws.com/person/images/833762/thumb/c669abfc3a307debcab2957b90c154f80008c141.png?1723200986","telephone":null,"notes":"","barcode":"","custom_1":"","custom_2":"","custom_3":"","custom_4":"","custom_5":"","created_at":"2024-08-09T11:56:26+01:00","updated_at":"2024-08-09T18:55:14+01:00","groups":[],"roles":[],"credentials":[{"id":"LNsmbNG","credential_type_id":852,"label":"Credentials
73
- number","person_id":833762,"value":"5945154368"},{"id":"j9s6kD6","credential_type_id":854,"label":"Pin","person_id":833762,"value":""},{"id":"XXsLekR","credential_type_id":853,"label":"Key
74
- fob number","person_id":833762,"value":""}]},{"id":871994,"first_name":"Terry","last_name":"Doe","salutation":"","job_title":"","email":"simonpreed+newdeveloper@gmail.com","organisation_id":"","system_id":null,"department":"","enabled":true,"valid_from":null,"valid_to":null,"credentials_number":"","key_fob_number":null,"pin":"","mobile":"","image_url":null,"image_thumbnail_url":null,"telephone":null,"notes":"","barcode":"","custom_1":"","custom_2":"","custom_3":"","custom_4":"","custom_5":"","created_at":"2024-11-22T08:42:58+00:00","updated_at":"2025-01-28T11:00:44+00:00","groups":[64660,64661],"roles":[],"credentials":[{"id":"VZsQOgK","credential_type_id":856,"label":"Mobile
75
- Access","person_id":871994,"status":"invited","url":"https://redeem.passflow.io/passes/jzUNDP"},{"id":"qKsZQM0","credential_type_id":854,"label":"Pin","person_id":871994,"value":""},{"id":"OrsWeJ6","credential_type_id":852,"label":"Credentials
76
- number","person_id":871994,"value":""}]},{"id":970890,"first_name":"Alice","last_name":"Smith","salutation":null,"job_title":"Senior
77
- Developer","email":"alice.smith@example.com","organisation_id":null,"system_id":"1","department":"Engineering","enabled":true,"valid_from":null,"valid_to":null,"credentials_number":null,"key_fob_number":null,"pin":"3391","mobile":null,"image_url":null,"image_thumbnail_url":null,"telephone":null,"notes":"Team
78
- lead for the mobile app project","barcode":null,"custom_1":"premium","custom_2":null,"custom_3":null,"custom_4":null,"custom_5":null,"created_at":"2025-12-11T15:05:15+00:00","updated_at":"2026-02-04T15:56:16+00:00","groups":[],"roles":[],"credentials":[{"id":"kEsQGLn","credential_type_id":856,"label":"Mobile
79
- Access","person_id":970890,"status":"invited","url":"https://redeem.passflow.io/passes/YNUBjqD"},{"id":"eysq3v2","credential_type_id":854,"label":"Pin","person_id":970890,"value":"3391"}]},{"id":970891,"first_name":"Hughw","last_name":"Johnson","salutation":null,"job_title":"Account
80
- Executive","email":"bob.johnson@example.com","organisation_id":null,"system_id":"2","department":"Sales","enabled":true,"valid_from":null,"valid_to":null,"credentials_number":null,"key_fob_number":null,"pin":null,"mobile":"+15551003","image_url":"https://doorguard-us-production.s3.amazonaws.com/person/images/970891/medium/7d4a5eea0e1caeb80cf01c41d97f85635ff64365.png?1770284353","image_thumbnail_url":"https://doorguard-us-production.s3.amazonaws.com/person/images/970891/thumb/6f2b2a0782c34f83eae1b990116ce5c087b39ed4.png?1770284353","telephone":null,"notes":"","barcode":null,"custom_1":"standard","custom_2":null,"custom_3":null,"custom_4":null,"custom_5":null,"created_at":"2025-12-11T15:05:16+00:00","updated_at":"2026-02-05T09:39:13+00:00","groups":[64660,64661],"roles":[],"credentials":[{"id":"eysYKDy","credential_type_id":856,"label":"Mobile
81
- Access","person_id":970891,"status":"invited","url":"https://redeem.passflow.io/passes/BaUgVG3"}]},{"id":970892,"first_name":"Carol","last_name":"Williams","salutation":null,"job_title":"DevOps
82
- Engineer","email":"carol.williams@example.com","organisation_id":null,"system_id":"3","department":"Engineering","enabled":true,"valid_from":null,"valid_to":null,"credentials_number":null,"key_fob_number":null,"pin":null,"mobile":null,"image_url":null,"image_thumbnail_url":null,"telephone":null,"notes":"On-call
83
- rotation lead","barcode":null,"custom_1":"premium","custom_2":null,"custom_3":null,"custom_4":null,"custom_5":null,"created_at":"2025-12-11T15:05:16+00:00","updated_at":"2026-02-04T19:02:53+00:00","groups":[64661],"roles":[],"credentials":[]},{"id":970894,"first_name":"Eva","last_name":"Martinez","salutation":null,"job_title":"Office
84
- Manager","email":"eva.martinez@example.com","organisation_id":null,"system_id":"4","department":"Operations","enabled":true,"valid_from":null,"valid_to":null,"credentials_number":null,"key_fob_number":null,"pin":null,"mobile":null,"image_url":null,"image_thumbnail_url":null,"telephone":null,"notes":null,"barcode":null,"custom_1":"standard","custom_2":null,"custom_3":null,"custom_4":null,"custom_5":null,"created_at":"2025-12-11T15:05:16+00:00","updated_at":"2026-02-04T15:56:17+00:00","groups":[],"roles":[],"credentials":[{"id":"r4svzR4","credential_type_id":856,"label":"Mobile
85
- Access","person_id":970894,"status":"invited","url":"https://redeem.passflow.io/passes/rJUkpeX"}]},{"id":981358,"first_name":"John","last_name":"Doe","salutation":null,"job_title":null,"email":"john.doe@example.com","organisation_id":null,"system_id":null,"department":null,"enabled":null,"valid_from":null,"valid_to":null,"credentials_number":null,"key_fob_number":null,"pin":null,"mobile":null,"image_url":null,"image_thumbnail_url":null,"telephone":null,"notes":null,"barcode":null,"custom_1":null,"custom_2":null,"custom_3":null,"custom_4":null,"custom_5":null,"created_at":"2026-02-05T15:33:11+00:00","updated_at":"2026-02-05T15:33:11+00:00","groups":[],"roles":[],"credentials":[]},{"id":981360,"first_name":"Test","last_name":"User","salutation":null,"job_title":null,"email":"test.user.1770306464@example.com","organisation_id":null,"system_id":null,"department":null,"enabled":null,"valid_from":null,"valid_to":null,"credentials_number":null,"key_fob_number":null,"pin":null,"mobile":null,"image_url":null,"image_thumbnail_url":null,"telephone":null,"notes":null,"barcode":null,"custom_1":null,"custom_2":null,"custom_3":null,"custom_4":null,"custom_5":null,"created_at":"2026-02-05T15:47:45+00:00","updated_at":"2026-02-05T15:47:45+00:00","groups":[],"roles":[],"credentials":[]},{"id":981366,"first_name":"Test","last_name":"User","salutation":null,"job_title":null,"email":"test.user.1770306746@example.com","organisation_id":null,"system_id":null,"department":null,"enabled":null,"valid_from":null,"valid_to":null,"credentials_number":null,"key_fob_number":null,"pin":null,"mobile":null,"image_url":null,"image_thumbnail_url":null,"telephone":null,"notes":null,"barcode":null,"custom_1":null,"custom_2":null,"custom_3":null,"custom_4":null,"custom_5":null,"created_at":"2026-02-05T15:52:26+00:00","updated_at":"2026-02-05T15:52:26+00:00","groups":[],"roles":[],"credentials":[]},{"id":981379,"first_name":"Test","last_name":"User","salutation":null,"job_title":null,"email":"test.user.1770308160@example.com","organisation_id":null,"system_id":null,"department":null,"enabled":null,"valid_from":null,"valid_to":null,"credentials_number":null,"key_fob_number":null,"pin":null,"mobile":null,"image_url":null,"image_thumbnail_url":null,"telephone":null,"notes":null,"barcode":null,"custom_1":null,"custom_2":null,"custom_3":null,"custom_4":null,"custom_5":null,"created_at":"2026-02-05T16:16:01+00:00","updated_at":"2026-02-05T16:16:01+00:00","groups":[],"roles":[],"credentials":[]},{"id":981380,"first_name":"Delete","last_name":"Me","salutation":null,"job_title":null,"email":"delete.me.1770308161@example.com","organisation_id":null,"system_id":null,"department":null,"enabled":null,"valid_from":null,"valid_to":null,"credentials_number":null,"key_fob_number":null,"pin":null,"mobile":null,"image_url":null,"image_thumbnail_url":null,"telephone":null,"notes":null,"barcode":null,"custom_1":null,"custom_2":null,"custom_3":null,"custom_4":null,"custom_5":null,"created_at":"2026-02-05T16:16:01+00:00","updated_at":"2026-02-05T16:16:01+00:00","groups":[],"roles":[],"credentials":[]},{"id":981414,"first_name":"Test","last_name":"User","salutation":null,"job_title":null,"email":"test.user.1770318347@example.com","organisation_id":null,"system_id":null,"department":null,"enabled":null,"valid_from":null,"valid_to":null,"credentials_number":null,"key_fob_number":null,"pin":null,"mobile":null,"image_url":null,"image_thumbnail_url":null,"telephone":null,"notes":null,"barcode":null,"custom_1":null,"custom_2":null,"custom_3":null,"custom_4":null,"custom_5":null,"created_at":"2026-02-05T19:05:47+00:00","updated_at":"2026-02-05T19:05:47+00:00","groups":[],"roles":[],"credentials":[]}]'
86
- recorded_at: Thu, 05 Feb 2026 19:05:51 GMT
87
- recorded_with: VCR 6.4.0
@@ -1,64 +0,0 @@
1
- ---
2
- http_interactions:
3
- - request:
4
- method: post
5
- uri: https://api.doorflow.com/api/3/people
6
- body:
7
- encoding: UTF-8
8
- string: '{"first_name":"Test","last_name":"User","email":"test.user.1770318347@example.com"}'
9
- headers:
10
- Content-Type:
11
- - application/json
12
- User-Agent:
13
- - doorflow-ruby/1.0.0
14
- Accept:
15
- - application/json
16
- Authorization:
17
- - "<ACCESS_TOKEN>"
18
- Accept-Encoding:
19
- - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
20
- response:
21
- status:
22
- code: 201
23
- message: Created
24
- headers:
25
- Date:
26
- - Thu, 05 Feb 2026 19:05:47 GMT
27
- Content-Type:
28
- - application/json; charset=utf-8
29
- Content-Length:
30
- - '584'
31
- Connection:
32
- - keep-alive
33
- Cache-Control:
34
- - max-age=0, private, must-revalidate
35
- Etag:
36
- - W/"7a478b33ae5ceaddc32eb533e6cf5f0d"
37
- Referrer-Policy:
38
- - strict-origin-when-cross-origin
39
- Strict-Transport-Security:
40
- - max-age=31536000; includeSubDomains
41
- Vary:
42
- - Accept-Encoding
43
- - Origin
44
- X-Cache:
45
- - bypass
46
- X-Content-Type-Options:
47
- - nosniff
48
- X-Download-Options:
49
- - noopen
50
- X-Frame-Options:
51
- - ALLOWALL
52
- X-Permitted-Cross-Domain-Policies:
53
- - none
54
- X-Request-Id:
55
- - 713b5c5e324d5ffaced2375c7eb2bfb6
56
- X-Runtime:
57
- - '0.247564'
58
- X-Xss-Protection:
59
- - 1; mode=block
60
- body:
61
- encoding: UTF-8
62
- string: '{"id":981414,"first_name":"Test","last_name":"User","salutation":null,"job_title":null,"email":"test.user.1770318347@example.com","organisation_id":null,"system_id":null,"department":null,"enabled":null,"valid_from":null,"valid_to":null,"credentials_number":null,"key_fob_number":null,"pin":null,"mobile":null,"image_url":null,"image_thumbnail_url":null,"telephone":null,"notes":null,"barcode":null,"custom_1":null,"custom_2":null,"custom_3":null,"custom_4":null,"custom_5":null,"created_at":"2026-02-05T19:05:47+00:00","updated_at":"2026-02-05T19:05:47+00:00","groups":[],"roles":[]}'
63
- recorded_at: Thu, 05 Feb 2026 19:05:47 GMT
64
- recorded_with: VCR 6.4.0
@@ -1,125 +0,0 @@
1
- ---
2
- http_interactions:
3
- - request:
4
- method: post
5
- uri: https://api.doorflow.com/api/3/people
6
- body:
7
- encoding: UTF-8
8
- string: '{"first_name":"Delete","last_name":"Me","email":"delete.me.1770318350@example.com"}'
9
- headers:
10
- Content-Type:
11
- - application/json
12
- User-Agent:
13
- - doorflow-ruby/1.0.0
14
- Accept:
15
- - application/json
16
- Authorization:
17
- - "<ACCESS_TOKEN>"
18
- Accept-Encoding:
19
- - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
20
- response:
21
- status:
22
- code: 201
23
- message: Created
24
- headers:
25
- Date:
26
- - Thu, 05 Feb 2026 19:05:50 GMT
27
- Content-Type:
28
- - application/json; charset=utf-8
29
- Content-Length:
30
- - '584'
31
- Connection:
32
- - keep-alive
33
- Cache-Control:
34
- - max-age=0, private, must-revalidate
35
- Etag:
36
- - W/"d3435a6123ab831d40b0d248514f68f1"
37
- Referrer-Policy:
38
- - strict-origin-when-cross-origin
39
- Strict-Transport-Security:
40
- - max-age=31536000; includeSubDomains
41
- Vary:
42
- - Accept-Encoding
43
- - Origin
44
- X-Cache:
45
- - bypass
46
- X-Content-Type-Options:
47
- - nosniff
48
- X-Download-Options:
49
- - noopen
50
- X-Frame-Options:
51
- - ALLOWALL
52
- X-Permitted-Cross-Domain-Policies:
53
- - none
54
- X-Request-Id:
55
- - f99f1a99bd02af39476893a03ea74752
56
- X-Runtime:
57
- - '0.062987'
58
- X-Xss-Protection:
59
- - 1; mode=block
60
- body:
61
- encoding: UTF-8
62
- string: '{"id":981415,"first_name":"Delete","last_name":"Me","salutation":null,"job_title":null,"email":"delete.me.1770318350@example.com","organisation_id":null,"system_id":null,"department":null,"enabled":null,"valid_from":null,"valid_to":null,"credentials_number":null,"key_fob_number":null,"pin":null,"mobile":null,"image_url":null,"image_thumbnail_url":null,"telephone":null,"notes":null,"barcode":null,"custom_1":null,"custom_2":null,"custom_3":null,"custom_4":null,"custom_5":null,"created_at":"2026-02-05T19:05:50+00:00","updated_at":"2026-02-05T19:05:50+00:00","groups":[],"roles":[]}'
63
- recorded_at: Thu, 05 Feb 2026 19:05:50 GMT
64
- - request:
65
- method: delete
66
- uri: https://api.doorflow.com/api/3/people/981415
67
- body:
68
- encoding: US-ASCII
69
- string: ''
70
- headers:
71
- Content-Type:
72
- - application/json
73
- User-Agent:
74
- - doorflow-ruby/1.0.0
75
- Accept:
76
- - application/json
77
- Authorization:
78
- - "<ACCESS_TOKEN>"
79
- Accept-Encoding:
80
- - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
81
- response:
82
- status:
83
- code: 200
84
- message: OK
85
- headers:
86
- Date:
87
- - Thu, 05 Feb 2026 19:05:50 GMT
88
- Content-Type:
89
- - application/json; charset=utf-8
90
- Content-Length:
91
- - '15'
92
- Connection:
93
- - keep-alive
94
- Cache-Control:
95
- - max-age=0, private, must-revalidate
96
- Etag:
97
- - W/"1aad36b0fb02621b951649811957ba7a"
98
- Referrer-Policy:
99
- - strict-origin-when-cross-origin
100
- Strict-Transport-Security:
101
- - max-age=31536000; includeSubDomains
102
- Vary:
103
- - Accept-Encoding
104
- - Origin
105
- X-Cache:
106
- - bypass
107
- X-Content-Type-Options:
108
- - nosniff
109
- X-Download-Options:
110
- - noopen
111
- X-Frame-Options:
112
- - ALLOWALL
113
- X-Permitted-Cross-Domain-Policies:
114
- - none
115
- X-Request-Id:
116
- - 17676e4dc5d157d00af29d0b7e66683e
117
- X-Runtime:
118
- - '0.070528'
119
- X-Xss-Protection:
120
- - 1; mode=block
121
- body:
122
- encoding: UTF-8
123
- string: '{"result":"ok"}'
124
- recorded_at: Thu, 05 Feb 2026 19:05:50 GMT
125
- recorded_with: VCR 6.4.0
@@ -1,90 +0,0 @@
1
- ---
2
- http_interactions:
3
- - request:
4
- method: get
5
- uri: https://api.doorflow.com/api/3/people?per_page=10
6
- body:
7
- encoding: US-ASCII
8
- string: ''
9
- headers:
10
- Content-Type:
11
- - application/json
12
- User-Agent:
13
- - doorflow-ruby/1.0.0
14
- Accept:
15
- - application/json
16
- Authorization:
17
- - "<ACCESS_TOKEN>"
18
- Accept-Encoding:
19
- - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
20
- response:
21
- status:
22
- code: 200
23
- message: OK
24
- headers:
25
- Date:
26
- - Thu, 05 Feb 2026 19:05:47 GMT
27
- Content-Type:
28
- - application/json; charset=utf-8
29
- Content-Length:
30
- - '8838'
31
- Connection:
32
- - keep-alive
33
- Cache-Control:
34
- - max-age=0, private, must-revalidate
35
- Etag:
36
- - W/"a132fce1476428366272e2217fea7a89"
37
- Link:
38
- - <https://api.doorflow.com/api/3/people?page=2&per_page=10>; rel="last", <https://api.doorflow.com/api/3/people?page=2&per_page=10>;
39
- rel="next"
40
- Referrer-Policy:
41
- - strict-origin-when-cross-origin
42
- Strict-Transport-Security:
43
- - max-age=31536000; includeSubDomains
44
- Vary:
45
- - Origin
46
- X-Cache:
47
- - miss
48
- X-Content-Type-Options:
49
- - nosniff
50
- X-Download-Options:
51
- - noopen
52
- X-Frame-Options:
53
- - ALLOWALL
54
- X-Page:
55
- - '1'
56
- X-Per-Page:
57
- - '10'
58
- X-Permitted-Cross-Domain-Policies:
59
- - none
60
- X-Request-Id:
61
- - 2074a04ae610ef554338a7cff41759f5
62
- X-Runtime:
63
- - '0.097676'
64
- X-Total-Results:
65
- - '14'
66
- X-Xss-Protection:
67
- - 1; mode=block
68
- body:
69
- encoding: ASCII-8BIT
70
- string: '[{"id":833760,"first_name":"Benjamin","last_name":"Carter","salutation":"","job_title":"","email":"","organisation_id":"","system_id":null,"department":"","enabled":true,"valid_from":null,"valid_to":null,"credentials_number":"","key_fob_number":"","pin":"5641","mobile":"","image_url":"https://doorguard-us-production.s3.amazonaws.com/person/images/833760/medium/0556a7e006d9b99b417598589c987df5f57a11b5.png?1723200983","image_thumbnail_url":"https://doorguard-us-production.s3.amazonaws.com/person/images/833760/thumb/40c3a8b597c01692cc7ebe5c7b08098cc7ef6ef4.png?1723200983","telephone":null,"notes":"Updated
71
- at 2026-02-05 15:52:28 +0000","barcode":"","custom_1":"","custom_2":"","custom_3":"","custom_4":"","custom_5":"","created_at":"2024-08-09T11:56:22+01:00","updated_at":"2026-02-05T15:52:28+00:00","groups":[],"roles":[],"credentials":[{"id":"wmsd1rM","credential_type_id":852,"label":"Credentials
72
- number","person_id":833760,"value":""},{"id":"6ps3Ob9","credential_type_id":854,"label":"Pin","person_id":833760,"value":"5641"},{"id":"qKsXq1N","credential_type_id":853,"label":"Key
73
- fob number","person_id":833760,"value":""}]},{"id":833761,"first_name":"Charlotte","last_name":"Smith","salutation":"","job_title":"","email":"","organisation_id":"","system_id":null,"department":"","enabled":true,"valid_from":null,"valid_to":null,"credentials_number":"5445784562","key_fob_number":"","pin":"","mobile":"","image_url":"https://doorguard-us-production.s3.amazonaws.com/person/images/833761/medium/abffec982cf4b473a8dc82ec666f91e6d10acf2e.png?1723200985","image_thumbnail_url":"https://doorguard-us-production.s3.amazonaws.com/person/images/833761/thumb/9aee440af8519c41591f0b63579d229e95a7a22d.png?1723200985","telephone":null,"notes":"","barcode":"","custom_1":"","custom_2":"","custom_3":"","custom_4":"","custom_5":"","created_at":"2024-08-09T11:56:24+01:00","updated_at":"2024-08-09T18:55:14+01:00","groups":[],"roles":[],"credentials":[{"id":"kEsq32X","credential_type_id":853,"label":"Key
74
- fob number","person_id":833761,"value":""},{"id":"Z0sDYMg","credential_type_id":852,"label":"Credentials
75
- number","person_id":833761,"value":"5445784562"},{"id":"7DsJqMW","credential_type_id":854,"label":"Pin","person_id":833761,"value":""}]},{"id":833762,"first_name":"Alice","last_name":"Johnson","salutation":"","job_title":"","email":"","organisation_id":"","system_id":null,"department":"","enabled":true,"valid_from":null,"valid_to":null,"credentials_number":"5945154368","key_fob_number":"","pin":"","mobile":"","image_url":"https://doorguard-us-production.s3.amazonaws.com/person/images/833762/medium/ff125b29a4d0907d79b8c254269ffb2b46f8fbd1.png?1723200986","image_thumbnail_url":"https://doorguard-us-production.s3.amazonaws.com/person/images/833762/thumb/c669abfc3a307debcab2957b90c154f80008c141.png?1723200986","telephone":null,"notes":"","barcode":"","custom_1":"","custom_2":"","custom_3":"","custom_4":"","custom_5":"","created_at":"2024-08-09T11:56:26+01:00","updated_at":"2024-08-09T18:55:14+01:00","groups":[],"roles":[],"credentials":[{"id":"LNsmbNG","credential_type_id":852,"label":"Credentials
76
- number","person_id":833762,"value":"5945154368"},{"id":"j9s6kD6","credential_type_id":854,"label":"Pin","person_id":833762,"value":""},{"id":"XXsLekR","credential_type_id":853,"label":"Key
77
- fob number","person_id":833762,"value":""}]},{"id":871994,"first_name":"Terry","last_name":"Doe","salutation":"","job_title":"","email":"simonpreed+newdeveloper@gmail.com","organisation_id":"","system_id":null,"department":"","enabled":true,"valid_from":null,"valid_to":null,"credentials_number":"","key_fob_number":null,"pin":"","mobile":"","image_url":null,"image_thumbnail_url":null,"telephone":null,"notes":"","barcode":"","custom_1":"","custom_2":"","custom_3":"","custom_4":"","custom_5":"","created_at":"2024-11-22T08:42:58+00:00","updated_at":"2025-01-28T11:00:44+00:00","groups":[64660,64661],"roles":[],"credentials":[{"id":"VZsQOgK","credential_type_id":856,"label":"Mobile
78
- Access","person_id":871994,"status":"invited","url":"https://redeem.passflow.io/passes/jzUNDP"},{"id":"qKsZQM0","credential_type_id":854,"label":"Pin","person_id":871994,"value":""},{"id":"OrsWeJ6","credential_type_id":852,"label":"Credentials
79
- number","person_id":871994,"value":""}]},{"id":970890,"first_name":"Alice","last_name":"Smith","salutation":null,"job_title":"Senior
80
- Developer","email":"alice.smith@example.com","organisation_id":null,"system_id":"1","department":"Engineering","enabled":true,"valid_from":null,"valid_to":null,"credentials_number":null,"key_fob_number":null,"pin":"3391","mobile":null,"image_url":null,"image_thumbnail_url":null,"telephone":null,"notes":"Team
81
- lead for the mobile app project","barcode":null,"custom_1":"premium","custom_2":null,"custom_3":null,"custom_4":null,"custom_5":null,"created_at":"2025-12-11T15:05:15+00:00","updated_at":"2026-02-04T15:56:16+00:00","groups":[],"roles":[],"credentials":[{"id":"kEsQGLn","credential_type_id":856,"label":"Mobile
82
- Access","person_id":970890,"status":"invited","url":"https://redeem.passflow.io/passes/YNUBjqD"},{"id":"eysq3v2","credential_type_id":854,"label":"Pin","person_id":970890,"value":"3391"}]},{"id":970891,"first_name":"Hughw","last_name":"Johnson","salutation":null,"job_title":"Account
83
- Executive","email":"bob.johnson@example.com","organisation_id":null,"system_id":"2","department":"Sales","enabled":true,"valid_from":null,"valid_to":null,"credentials_number":null,"key_fob_number":null,"pin":null,"mobile":"+15551003","image_url":"https://doorguard-us-production.s3.amazonaws.com/person/images/970891/medium/7d4a5eea0e1caeb80cf01c41d97f85635ff64365.png?1770284353","image_thumbnail_url":"https://doorguard-us-production.s3.amazonaws.com/person/images/970891/thumb/6f2b2a0782c34f83eae1b990116ce5c087b39ed4.png?1770284353","telephone":null,"notes":"","barcode":null,"custom_1":"standard","custom_2":null,"custom_3":null,"custom_4":null,"custom_5":null,"created_at":"2025-12-11T15:05:16+00:00","updated_at":"2026-02-05T09:39:13+00:00","groups":[64660,64661],"roles":[],"credentials":[{"id":"eysYKDy","credential_type_id":856,"label":"Mobile
84
- Access","person_id":970891,"status":"invited","url":"https://redeem.passflow.io/passes/BaUgVG3"}]},{"id":970892,"first_name":"Carol","last_name":"Williams","salutation":null,"job_title":"DevOps
85
- Engineer","email":"carol.williams@example.com","organisation_id":null,"system_id":"3","department":"Engineering","enabled":true,"valid_from":null,"valid_to":null,"credentials_number":null,"key_fob_number":null,"pin":null,"mobile":null,"image_url":null,"image_thumbnail_url":null,"telephone":null,"notes":"On-call
86
- rotation lead","barcode":null,"custom_1":"premium","custom_2":null,"custom_3":null,"custom_4":null,"custom_5":null,"created_at":"2025-12-11T15:05:16+00:00","updated_at":"2026-02-04T19:02:53+00:00","groups":[64661],"roles":[],"credentials":[]},{"id":970894,"first_name":"Eva","last_name":"Martinez","salutation":null,"job_title":"Office
87
- Manager","email":"eva.martinez@example.com","organisation_id":null,"system_id":"4","department":"Operations","enabled":true,"valid_from":null,"valid_to":null,"credentials_number":null,"key_fob_number":null,"pin":null,"mobile":null,"image_url":null,"image_thumbnail_url":null,"telephone":null,"notes":null,"barcode":null,"custom_1":"standard","custom_2":null,"custom_3":null,"custom_4":null,"custom_5":null,"created_at":"2025-12-11T15:05:16+00:00","updated_at":"2026-02-04T15:56:17+00:00","groups":[],"roles":[],"credentials":[{"id":"r4svzR4","credential_type_id":856,"label":"Mobile
88
- Access","person_id":970894,"status":"invited","url":"https://redeem.passflow.io/passes/rJUkpeX"}]},{"id":981358,"first_name":"John","last_name":"Doe","salutation":null,"job_title":null,"email":"john.doe@example.com","organisation_id":null,"system_id":null,"department":null,"enabled":null,"valid_from":null,"valid_to":null,"credentials_number":null,"key_fob_number":null,"pin":null,"mobile":null,"image_url":null,"image_thumbnail_url":null,"telephone":null,"notes":null,"barcode":null,"custom_1":null,"custom_2":null,"custom_3":null,"custom_4":null,"custom_5":null,"created_at":"2026-02-05T15:33:11+00:00","updated_at":"2026-02-05T15:33:11+00:00","groups":[],"roles":[],"credentials":[]},{"id":981360,"first_name":"Test","last_name":"User","salutation":null,"job_title":null,"email":"test.user.1770306464@example.com","organisation_id":null,"system_id":null,"department":null,"enabled":null,"valid_from":null,"valid_to":null,"credentials_number":null,"key_fob_number":null,"pin":null,"mobile":null,"image_url":null,"image_thumbnail_url":null,"telephone":null,"notes":null,"barcode":null,"custom_1":null,"custom_2":null,"custom_3":null,"custom_4":null,"custom_5":null,"created_at":"2026-02-05T15:47:45+00:00","updated_at":"2026-02-05T15:47:45+00:00","groups":[],"roles":[],"credentials":[]}]'
89
- recorded_at: Thu, 05 Feb 2026 19:05:47 GMT
90
- recorded_with: VCR 6.4.0