doorflow 1.0.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 (211) hide show
  1. checksums.yaml +7 -0
  2. data/CHANGELOG.md +27 -0
  3. data/LICENSE +21 -0
  4. data/README.md +356 -0
  5. data/bin/post-generate +47 -0
  6. data/doorflow.gemspec +55 -0
  7. data/lib/doorflow/auth/doorflow_auth.rb +308 -0
  8. data/lib/doorflow/auth/file_token_storage.rb +104 -0
  9. data/lib/doorflow/auth/token_storage.rb +106 -0
  10. data/lib/doorflow/auth.rb +32 -0
  11. data/lib/doorflow/client/account_proxy.rb +19 -0
  12. data/lib/doorflow/client/channels_proxy.rb +64 -0
  13. data/lib/doorflow/client/credential_types_proxy.rb +28 -0
  14. data/lib/doorflow/client/credentials_proxy.rb +73 -0
  15. data/lib/doorflow/client/events_proxy.rb +33 -0
  16. data/lib/doorflow/client/group_reservations_proxy.rb +46 -0
  17. data/lib/doorflow/client/groups_proxy.rb +51 -0
  18. data/lib/doorflow/client/notification_rules_proxy.rb +46 -0
  19. data/lib/doorflow/client/people_proxy.rb +69 -0
  20. data/lib/doorflow/client/reservations_proxy.rb +46 -0
  21. data/lib/doorflow/client/resource_proxy.rb +113 -0
  22. data/lib/doorflow/client/roles_proxy.rb +28 -0
  23. data/lib/doorflow/client/sites_proxy.rb +28 -0
  24. data/lib/doorflow/client.rb +263 -0
  25. data/lib/doorflow/errors/api_error.rb +28 -0
  26. data/lib/doorflow/errors/authentication_error.rb +23 -0
  27. data/lib/doorflow/errors/doorflow_error.rb +75 -0
  28. data/lib/doorflow/errors/forbidden_error.rb +22 -0
  29. data/lib/doorflow/errors/not_found_error.rb +22 -0
  30. data/lib/doorflow/errors/rate_limit_error.rb +65 -0
  31. data/lib/doorflow/errors/validation_error.rb +83 -0
  32. data/lib/doorflow/errors.rb +152 -0
  33. data/lib/doorflow/list_object.rb +125 -0
  34. data/lib/doorflow/resource.rb +153 -0
  35. data/lib/doorflow/resources/account.rb +66 -0
  36. data/lib/doorflow/resources/channel.rb +104 -0
  37. data/lib/doorflow/resources/credential.rb +73 -0
  38. data/lib/doorflow/resources/credential_type.rb +30 -0
  39. data/lib/doorflow/resources/event.rb +47 -0
  40. data/lib/doorflow/resources/group.rb +71 -0
  41. data/lib/doorflow/resources/group_reservation.rb +55 -0
  42. data/lib/doorflow/resources/notification_rule.rb +71 -0
  43. data/lib/doorflow/resources/person.rb +102 -0
  44. data/lib/doorflow/resources/reservation.rb +72 -0
  45. data/lib/doorflow/resources/role.rb +66 -0
  46. data/lib/doorflow/resources/site.rb +66 -0
  47. data/lib/doorflow/webhooks/event.rb +92 -0
  48. data/lib/doorflow/webhooks/handler.rb +206 -0
  49. data/lib/doorflow/webhooks/signature_verifier.rb +120 -0
  50. data/lib/doorflow/webhooks.rb +47 -0
  51. data/lib/doorflow-api/api/accounts_api.rb +79 -0
  52. data/lib/doorflow-api/api/admission_requests_api.rb +85 -0
  53. data/lib/doorflow-api/api/channels_api.rb +757 -0
  54. data/lib/doorflow-api/api/credential_types_api.rb +88 -0
  55. data/lib/doorflow-api/api/credentials_api.rb +458 -0
  56. data/lib/doorflow-api/api/events_api.rb +190 -0
  57. data/lib/doorflow-api/api/group_reservations_api.rb +225 -0
  58. data/lib/doorflow-api/api/groups_api.rb +79 -0
  59. data/lib/doorflow-api/api/notification_rules_api.rb +347 -0
  60. data/lib/doorflow-api/api/oauth_api.rb +360 -0
  61. data/lib/doorflow-api/api/people_api.rb +372 -0
  62. data/lib/doorflow-api/api/reservations_api.rb +225 -0
  63. data/lib/doorflow-api/api/roles_api.rb +79 -0
  64. data/lib/doorflow-api/api/sites_api.rb +88 -0
  65. data/lib/doorflow-api/api/sync_api.rb +79 -0
  66. data/lib/doorflow-api/api_client.rb +437 -0
  67. data/lib/doorflow-api/api_error.rb +63 -0
  68. data/lib/doorflow-api/api_model_base.rb +88 -0
  69. data/lib/doorflow-api/configuration.rb +399 -0
  70. data/lib/doorflow-api/models/account.rb +334 -0
  71. data/lib/doorflow-api/models/account_passport.rb +193 -0
  72. data/lib/doorflow-api/models/account_reseller.rb +192 -0
  73. data/lib/doorflow-api/models/account_sync.rb +214 -0
  74. data/lib/doorflow-api/models/account_user.rb +247 -0
  75. data/lib/doorflow-api/models/admission_request.rb +328 -0
  76. data/lib/doorflow-api/models/admission_request_door_controller.rb +159 -0
  77. data/lib/doorflow-api/models/admission_request_person.rb +159 -0
  78. data/lib/doorflow-api/models/admit_channel202_response.rb +192 -0
  79. data/lib/doorflow-api/models/admit_person202_response.rb +192 -0
  80. data/lib/doorflow-api/models/admit_person403_response.rb +157 -0
  81. data/lib/doorflow-api/models/admit_person_request.rb +165 -0
  82. data/lib/doorflow-api/models/auto_unlock_channel400_response.rb +156 -0
  83. data/lib/doorflow-api/models/auto_unlock_channel_request.rb +149 -0
  84. data/lib/doorflow-api/models/channel.rb +498 -0
  85. data/lib/doorflow-api/models/channel_auto_unlock.rb +159 -0
  86. data/lib/doorflow-api/models/channel_lockdown.rb +176 -0
  87. data/lib/doorflow-api/models/channel_lockdown_aux_lockdown.rb +148 -0
  88. data/lib/doorflow-api/models/channel_lockdown_card_lockdown.rb +148 -0
  89. data/lib/doorflow-api/models/channel_lockdown_rex_lockdown.rb +148 -0
  90. data/lib/doorflow-api/models/channel_mode.rb +212 -0
  91. data/lib/doorflow-api/models/channel_sync.rb +200 -0
  92. data/lib/doorflow-api/models/create_credential422_response.rb +157 -0
  93. data/lib/doorflow-api/models/create_credential422_response_errors.rb +173 -0
  94. data/lib/doorflow-api/models/credential.rb +336 -0
  95. data/lib/doorflow-api/models/credential_input.rb +164 -0
  96. data/lib/doorflow-api/models/credential_input_person_credential.rb +187 -0
  97. data/lib/doorflow-api/models/credential_type.rb +232 -0
  98. data/lib/doorflow-api/models/credential_update_input.rb +164 -0
  99. data/lib/doorflow-api/models/credential_update_input_person_credential.rb +165 -0
  100. data/lib/doorflow-api/models/delete_group_reservation200_response.rb +147 -0
  101. data/lib/doorflow-api/models/error.rb +192 -0
  102. data/lib/doorflow-api/models/event.rb +361 -0
  103. data/lib/doorflow-api/models/get_access_token200_response.rb +266 -0
  104. data/lib/doorflow-api/models/get_access_token400_response.rb +190 -0
  105. data/lib/doorflow-api/models/get_access_token401_response.rb +156 -0
  106. data/lib/doorflow-api/models/get_admission_request401_response.rb +156 -0
  107. data/lib/doorflow-api/models/get_admission_request403_response.rb +156 -0
  108. data/lib/doorflow-api/models/get_admission_request404_response.rb +156 -0
  109. data/lib/doorflow-api/models/get_admission_request500_response.rb +156 -0
  110. data/lib/doorflow-api/models/get_token_info200_response.rb +267 -0
  111. data/lib/doorflow-api/models/get_token_info200_response_application.rb +148 -0
  112. data/lib/doorflow-api/models/get_token_info401_response.rb +156 -0
  113. data/lib/doorflow-api/models/group.rb +284 -0
  114. data/lib/doorflow-api/models/group_reservation.rb +380 -0
  115. data/lib/doorflow-api/models/group_reservation_input.rb +164 -0
  116. data/lib/doorflow-api/models/group_reservation_input_group_reservation.rb +257 -0
  117. data/lib/doorflow-api/models/initiate_sync429_response.rb +243 -0
  118. data/lib/doorflow-api/models/list_events400_response.rb +156 -0
  119. data/lib/doorflow-api/models/lockdown_channel_request.rb +168 -0
  120. data/lib/doorflow-api/models/notification_rule.rb +324 -0
  121. data/lib/doorflow-api/models/notification_rule_actions_inner.rb +168 -0
  122. data/lib/doorflow-api/models/notification_rule_conditions_inner.rb +168 -0
  123. data/lib/doorflow-api/models/notification_rule_events_inner.rb +158 -0
  124. data/lib/doorflow-api/models/notification_rule_input.rb +254 -0
  125. data/lib/doorflow-api/models/person.rb +511 -0
  126. data/lib/doorflow-api/models/person_input.rb +413 -0
  127. data/lib/doorflow-api/models/reservation.rb +329 -0
  128. data/lib/doorflow-api/models/reservation_input.rb +281 -0
  129. data/lib/doorflow-api/models/revoke_token403_response.rb +156 -0
  130. data/lib/doorflow-api/models/role.rb +268 -0
  131. data/lib/doorflow-api/models/site.rb +254 -0
  132. data/lib/doorflow-api/models/site_site_ips_inner.rb +148 -0
  133. data/lib/doorflow-api/models/unlock_channel_request.rb +148 -0
  134. data/lib/doorflow-api/version.rb +15 -0
  135. data/lib/doorflow-api.rb +123 -0
  136. data/lib/doorflow.rb +171 -0
  137. data/spec/api/admission_requests_api_spec.rb +47 -0
  138. data/spec/api/channels_api_spec.rb +174 -0
  139. data/spec/api/credential_types_api_spec.rb +49 -0
  140. data/spec/api/group_reservations_api_spec.rb +75 -0
  141. data/spec/api/oauth_api_spec.rb +97 -0
  142. data/spec/doorflow/client_spec.rb +109 -0
  143. data/spec/doorflow_spec.rb +22 -0
  144. data/spec/fixtures/vcr_cassettes/channel/list.yml +70 -0
  145. data/spec/fixtures/vcr_cassettes/channel/retrieve.yml +131 -0
  146. data/spec/fixtures/vcr_cassettes/person/auto_pagination.yml +87 -0
  147. data/spec/fixtures/vcr_cassettes/person/create.yml +64 -0
  148. data/spec/fixtures/vcr_cassettes/person/delete.yml +125 -0
  149. data/spec/fixtures/vcr_cassettes/person/list.yml +90 -0
  150. data/spec/fixtures/vcr_cassettes/person/not_found.yml +62 -0
  151. data/spec/fixtures/vcr_cassettes/person/retrieve.yml +136 -0
  152. data/spec/fixtures/vcr_cassettes/person/update.yml +260 -0
  153. data/spec/fixtures/vcr_cassettes/person/validation_error.yml +62 -0
  154. data/spec/integration/channel_spec.rb +88 -0
  155. data/spec/integration/person_spec.rb +99 -0
  156. data/spec/models/account_passport_spec.rb +42 -0
  157. data/spec/models/account_reseller_spec.rb +60 -0
  158. data/spec/models/account_sync_spec.rb +52 -0
  159. data/spec/models/account_user_spec.rb +54 -0
  160. data/spec/models/admission_request_door_controller_spec.rb +42 -0
  161. data/spec/models/admission_request_person_spec.rb +42 -0
  162. data/spec/models/admission_request_spec.rb +82 -0
  163. data/spec/models/admit_channel202_response_spec.rb +46 -0
  164. data/spec/models/admit_person202_response_spec.rb +46 -0
  165. data/spec/models/admit_person403_response_spec.rb +42 -0
  166. data/spec/models/admit_person_request_spec.rb +36 -0
  167. data/spec/models/auto_unlock_channel400_response_spec.rb +42 -0
  168. data/spec/models/auto_unlock_channel_request_spec.rb +36 -0
  169. data/spec/models/channel_auto_unlock_spec.rb +42 -0
  170. data/spec/models/channel_lockdown_aux_lockdown_spec.rb +36 -0
  171. data/spec/models/channel_lockdown_card_lockdown_spec.rb +36 -0
  172. data/spec/models/channel_lockdown_rex_lockdown_spec.rb +36 -0
  173. data/spec/models/channel_lockdown_spec.rb +54 -0
  174. data/spec/models/channel_mode_spec.rb +52 -0
  175. data/spec/models/channel_sync_spec.rb +46 -0
  176. data/spec/models/create_credential422_response_errors_spec.rb +48 -0
  177. data/spec/models/create_credential422_response_spec.rb +42 -0
  178. data/spec/models/credential_input_person_credential_spec.rb +48 -0
  179. data/spec/models/credential_input_spec.rb +36 -0
  180. data/spec/models/credential_spec.rb +86 -0
  181. data/spec/models/credential_update_input_person_credential_spec.rb +36 -0
  182. data/spec/models/credential_update_input_spec.rb +36 -0
  183. data/spec/models/delete_group_reservation200_response_spec.rb +36 -0
  184. data/spec/models/error_spec.rb +42 -0
  185. data/spec/models/get_access_token200_response_spec.rb +66 -0
  186. data/spec/models/get_access_token400_response_spec.rb +46 -0
  187. data/spec/models/get_access_token401_response_spec.rb +42 -0
  188. data/spec/models/get_admission_request401_response_spec.rb +42 -0
  189. data/spec/models/get_admission_request403_response_spec.rb +42 -0
  190. data/spec/models/get_admission_request404_response_spec.rb +42 -0
  191. data/spec/models/get_admission_request500_response_spec.rb +42 -0
  192. data/spec/models/get_token_info200_response_application_spec.rb +36 -0
  193. data/spec/models/get_token_info200_response_spec.rb +66 -0
  194. data/spec/models/get_token_info401_response_spec.rb +42 -0
  195. data/spec/models/group_reservation_input_group_reservation_spec.rb +54 -0
  196. data/spec/models/group_reservation_input_spec.rb +36 -0
  197. data/spec/models/group_reservation_spec.rb +82 -0
  198. data/spec/models/initiate_sync429_response_spec.rb +52 -0
  199. data/spec/models/list_events400_response_spec.rb +42 -0
  200. data/spec/models/lockdown_channel_request_spec.rb +48 -0
  201. data/spec/models/notification_rule_actions_inner_spec.rb +48 -0
  202. data/spec/models/notification_rule_conditions_inner_spec.rb +48 -0
  203. data/spec/models/notification_rule_events_inner_spec.rb +42 -0
  204. data/spec/models/notification_rule_input_spec.rb +60 -0
  205. data/spec/models/person_input_spec.rb +180 -0
  206. data/spec/models/reservation_input_spec.rb +60 -0
  207. data/spec/models/revoke_token403_response_spec.rb +42 -0
  208. data/spec/models/site_site_ips_inner_spec.rb +36 -0
  209. data/spec/models/unlock_channel_request_spec.rb +36 -0
  210. data/spec/spec_helper.rb +160 -0
  211. metadata +495 -0
@@ -0,0 +1,88 @@
1
+ =begin
2
+ #DoorFlow API
3
+
4
+ #Access control and door management API for DoorFlow
5
+
6
+ The version of the OpenAPI document: 3.0
7
+
8
+ Generated by: https://openapi-generator.tech
9
+ Generator version: 7.18.0-SNAPSHOT
10
+
11
+ =end
12
+
13
+ require 'cgi'
14
+
15
+ module DoorFlow
16
+ class CredentialTypesApi
17
+ attr_accessor :api_client
18
+
19
+ def initialize(api_client = ApiClient.default)
20
+ @api_client = api_client
21
+ end
22
+ # List credential types
23
+ # Returns a paginated list of credential types configured for the authenticated user's account. Credential types define the formats and types of credentials (cards, PINs, mobile access, etc.) that can be used. Each credential type is based on a global credential type and can be customized per account.
24
+ # @param [Hash] opts the optional parameters
25
+ # @option opts [Integer] :per_page Number of results per page (default to 500)
26
+ # @option opts [Integer] :page Page number for pagination (default to 1)
27
+ # @option opts [Boolean] :skip_pagination Skip pagination and return all results
28
+ # @return [Array<CredentialType>]
29
+ def list_credential_types(opts = {})
30
+ data, _status_code, _headers = list_credential_types_with_http_info(opts)
31
+ data
32
+ end
33
+
34
+ # List credential types
35
+ # Returns a paginated list of credential types configured for the authenticated user&#39;s account. Credential types define the formats and types of credentials (cards, PINs, mobile access, etc.) that can be used. Each credential type is based on a global credential type and can be customized per account.
36
+ # @param [Hash] opts the optional parameters
37
+ # @option opts [Integer] :per_page Number of results per page (default to 500)
38
+ # @option opts [Integer] :page Page number for pagination (default to 1)
39
+ # @option opts [Boolean] :skip_pagination Skip pagination and return all results
40
+ # @return [Array<(Array<CredentialType>, Integer, Hash)>] Array<CredentialType> data, response status code and response headers
41
+ def list_credential_types_with_http_info(opts = {})
42
+ if @api_client.config.debugging
43
+ @api_client.config.logger.debug 'Calling API: CredentialTypesApi.list_credential_types ...'
44
+ end
45
+ # resource path
46
+ local_var_path = '/api/3/credential_types'
47
+
48
+ # query parameters
49
+ query_params = opts[:query_params] || {}
50
+ query_params[:'per_page'] = opts[:'per_page'] if !opts[:'per_page'].nil?
51
+ query_params[:'page'] = opts[:'page'] if !opts[:'page'].nil?
52
+ query_params[:'skip_pagination'] = opts[:'skip_pagination'] if !opts[:'skip_pagination'].nil?
53
+
54
+ # header parameters
55
+ header_params = opts[:header_params] || {}
56
+ # HTTP header 'Accept' (if needed)
57
+ header_params['Accept'] = @api_client.select_header_accept(['application/json']) unless header_params['Accept']
58
+
59
+ # form parameters
60
+ form_params = opts[:form_params] || {}
61
+
62
+ # http body (model)
63
+ post_body = opts[:debug_body]
64
+
65
+ # return_type
66
+ return_type = opts[:debug_return_type] || 'Array<CredentialType>'
67
+
68
+ # auth_names
69
+ auth_names = opts[:debug_auth_names] || ['OAuth2']
70
+
71
+ new_options = opts.merge(
72
+ :operation => :"CredentialTypesApi.list_credential_types",
73
+ :header_params => header_params,
74
+ :query_params => query_params,
75
+ :form_params => form_params,
76
+ :body => post_body,
77
+ :auth_names => auth_names,
78
+ :return_type => return_type
79
+ )
80
+
81
+ data, status_code, headers = @api_client.call_api(:GET, local_var_path, new_options)
82
+ if @api_client.config.debugging
83
+ @api_client.config.logger.debug "API called: CredentialTypesApi#list_credential_types\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
84
+ end
85
+ return data, status_code, headers
86
+ end
87
+ end
88
+ end
@@ -0,0 +1,458 @@
1
+ =begin
2
+ #DoorFlow API
3
+
4
+ #Access control and door management API for DoorFlow
5
+
6
+ The version of the OpenAPI document: 3.0
7
+
8
+ Generated by: https://openapi-generator.tech
9
+ Generator version: 7.18.0-SNAPSHOT
10
+
11
+ =end
12
+
13
+ require 'cgi'
14
+
15
+ module DoorFlow
16
+ class CredentialsApi
17
+ attr_accessor :api_client
18
+
19
+ def initialize(api_client = ApiClient.default)
20
+ @api_client = api_client
21
+ end
22
+ # Create credential
23
+ # Creates a new credential for a person. For HID Mobile Access and PassFlow credentials, this initiates an invitation process.
24
+ # @param person_id [Integer] Person ID
25
+ # @param credential_input [CredentialInput]
26
+ # @param [Hash] opts the optional parameters
27
+ # @return [Credential]
28
+ def create_credential(person_id, credential_input, opts = {})
29
+ data, _status_code, _headers = create_credential_with_http_info(person_id, credential_input, opts)
30
+ data
31
+ end
32
+
33
+ # Create credential
34
+ # Creates a new credential for a person. For HID Mobile Access and PassFlow credentials, this initiates an invitation process.
35
+ # @param person_id [Integer] Person ID
36
+ # @param credential_input [CredentialInput]
37
+ # @param [Hash] opts the optional parameters
38
+ # @return [Array<(Credential, Integer, Hash)>] Credential data, response status code and response headers
39
+ def create_credential_with_http_info(person_id, credential_input, opts = {})
40
+ if @api_client.config.debugging
41
+ @api_client.config.logger.debug 'Calling API: CredentialsApi.create_credential ...'
42
+ end
43
+ # verify the required parameter 'person_id' is set
44
+ if @api_client.config.client_side_validation && person_id.nil?
45
+ fail ArgumentError, "Missing the required parameter 'person_id' when calling CredentialsApi.create_credential"
46
+ end
47
+ # verify the required parameter 'credential_input' is set
48
+ if @api_client.config.client_side_validation && credential_input.nil?
49
+ fail ArgumentError, "Missing the required parameter 'credential_input' when calling CredentialsApi.create_credential"
50
+ end
51
+ # resource path
52
+ local_var_path = '/api/3/people/{person_id}/credentials'.sub('{' + 'person_id' + '}', CGI.escape(person_id.to_s))
53
+
54
+ # query parameters
55
+ query_params = opts[:query_params] || {}
56
+
57
+ # header parameters
58
+ header_params = opts[:header_params] || {}
59
+ # HTTP header 'Accept' (if needed)
60
+ header_params['Accept'] = @api_client.select_header_accept(['application/json']) unless header_params['Accept']
61
+ # HTTP header 'Content-Type'
62
+ content_type = @api_client.select_header_content_type(['application/json'])
63
+ if !content_type.nil?
64
+ header_params['Content-Type'] = content_type
65
+ end
66
+
67
+ # form parameters
68
+ form_params = opts[:form_params] || {}
69
+
70
+ # http body (model)
71
+ post_body = opts[:debug_body] || @api_client.object_to_http_body(credential_input)
72
+
73
+ # return_type
74
+ return_type = opts[:debug_return_type] || 'Credential'
75
+
76
+ # auth_names
77
+ auth_names = opts[:debug_auth_names] || ['OAuth2']
78
+
79
+ new_options = opts.merge(
80
+ :operation => :"CredentialsApi.create_credential",
81
+ :header_params => header_params,
82
+ :query_params => query_params,
83
+ :form_params => form_params,
84
+ :body => post_body,
85
+ :auth_names => auth_names,
86
+ :return_type => return_type
87
+ )
88
+
89
+ data, status_code, headers = @api_client.call_api(:POST, local_var_path, new_options)
90
+ if @api_client.config.debugging
91
+ @api_client.config.logger.debug "API called: CredentialsApi#create_credential\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
92
+ end
93
+ return data, status_code, headers
94
+ end
95
+
96
+ # Delete credential
97
+ # Deletes a credential. For HID Mobile Access credentials, this deactivates the mobile credential.
98
+ # @param person_id [Integer] Person ID
99
+ # @param id [String] Credential ID (hashid) or HID invitation ID (format 99xxxxxxxx)
100
+ # @param [Hash] opts the optional parameters
101
+ # @return [String]
102
+ def delete_credential(person_id, id, opts = {})
103
+ data, _status_code, _headers = delete_credential_with_http_info(person_id, id, opts)
104
+ data
105
+ end
106
+
107
+ # Delete credential
108
+ # Deletes a credential. For HID Mobile Access credentials, this deactivates the mobile credential.
109
+ # @param person_id [Integer] Person ID
110
+ # @param id [String] Credential ID (hashid) or HID invitation ID (format 99xxxxxxxx)
111
+ # @param [Hash] opts the optional parameters
112
+ # @return [Array<(String, Integer, Hash)>] String data, response status code and response headers
113
+ def delete_credential_with_http_info(person_id, id, opts = {})
114
+ if @api_client.config.debugging
115
+ @api_client.config.logger.debug 'Calling API: CredentialsApi.delete_credential ...'
116
+ end
117
+ # verify the required parameter 'person_id' is set
118
+ if @api_client.config.client_side_validation && person_id.nil?
119
+ fail ArgumentError, "Missing the required parameter 'person_id' when calling CredentialsApi.delete_credential"
120
+ end
121
+ # verify the required parameter 'id' is set
122
+ if @api_client.config.client_side_validation && id.nil?
123
+ fail ArgumentError, "Missing the required parameter 'id' when calling CredentialsApi.delete_credential"
124
+ end
125
+ # resource path
126
+ local_var_path = '/api/3/people/{person_id}/credentials/{id}'.sub('{' + 'person_id' + '}', CGI.escape(person_id.to_s)).sub('{' + 'id' + '}', CGI.escape(id.to_s))
127
+
128
+ # query parameters
129
+ query_params = opts[:query_params] || {}
130
+
131
+ # header parameters
132
+ header_params = opts[:header_params] || {}
133
+ # HTTP header 'Accept' (if needed)
134
+ header_params['Accept'] = @api_client.select_header_accept(['text/plain', 'application/json']) unless header_params['Accept']
135
+
136
+ # form parameters
137
+ form_params = opts[:form_params] || {}
138
+
139
+ # http body (model)
140
+ post_body = opts[:debug_body]
141
+
142
+ # return_type
143
+ return_type = opts[:debug_return_type] || 'String'
144
+
145
+ # auth_names
146
+ auth_names = opts[:debug_auth_names] || ['OAuth2']
147
+
148
+ new_options = opts.merge(
149
+ :operation => :"CredentialsApi.delete_credential",
150
+ :header_params => header_params,
151
+ :query_params => query_params,
152
+ :form_params => form_params,
153
+ :body => post_body,
154
+ :auth_names => auth_names,
155
+ :return_type => return_type
156
+ )
157
+
158
+ data, status_code, headers = @api_client.call_api(:DELETE, local_var_path, new_options)
159
+ if @api_client.config.debugging
160
+ @api_client.config.logger.debug "API called: CredentialsApi#delete_credential\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
161
+ end
162
+ return data, status_code, headers
163
+ end
164
+
165
+ # Get credential details
166
+ # Returns details for a specific credential
167
+ # @param person_id [Integer] Person ID
168
+ # @param id [String] Credential ID (hashid) or HID invitation ID (format 99xxxxxxxx)
169
+ # @param [Hash] opts the optional parameters
170
+ # @option opts [String] :callback Webhook callback ID for acknowledgment
171
+ # @option opts [String] :ack_token Webhook acknowledgment token
172
+ # @return [Credential]
173
+ def get_credential(person_id, id, opts = {})
174
+ data, _status_code, _headers = get_credential_with_http_info(person_id, id, opts)
175
+ data
176
+ end
177
+
178
+ # Get credential details
179
+ # Returns details for a specific credential
180
+ # @param person_id [Integer] Person ID
181
+ # @param id [String] Credential ID (hashid) or HID invitation ID (format 99xxxxxxxx)
182
+ # @param [Hash] opts the optional parameters
183
+ # @option opts [String] :callback Webhook callback ID for acknowledgment
184
+ # @option opts [String] :ack_token Webhook acknowledgment token
185
+ # @return [Array<(Credential, Integer, Hash)>] Credential data, response status code and response headers
186
+ def get_credential_with_http_info(person_id, id, opts = {})
187
+ if @api_client.config.debugging
188
+ @api_client.config.logger.debug 'Calling API: CredentialsApi.get_credential ...'
189
+ end
190
+ # verify the required parameter 'person_id' is set
191
+ if @api_client.config.client_side_validation && person_id.nil?
192
+ fail ArgumentError, "Missing the required parameter 'person_id' when calling CredentialsApi.get_credential"
193
+ end
194
+ # verify the required parameter 'id' is set
195
+ if @api_client.config.client_side_validation && id.nil?
196
+ fail ArgumentError, "Missing the required parameter 'id' when calling CredentialsApi.get_credential"
197
+ end
198
+ # resource path
199
+ local_var_path = '/api/3/people/{person_id}/credentials/{id}'.sub('{' + 'person_id' + '}', CGI.escape(person_id.to_s)).sub('{' + 'id' + '}', CGI.escape(id.to_s))
200
+
201
+ # query parameters
202
+ query_params = opts[:query_params] || {}
203
+ query_params[:'callback'] = opts[:'callback'] if !opts[:'callback'].nil?
204
+ query_params[:'ack_token'] = opts[:'ack_token'] if !opts[:'ack_token'].nil?
205
+
206
+ # header parameters
207
+ header_params = opts[:header_params] || {}
208
+ # HTTP header 'Accept' (if needed)
209
+ header_params['Accept'] = @api_client.select_header_accept(['application/json']) unless header_params['Accept']
210
+
211
+ # form parameters
212
+ form_params = opts[:form_params] || {}
213
+
214
+ # http body (model)
215
+ post_body = opts[:debug_body]
216
+
217
+ # return_type
218
+ return_type = opts[:debug_return_type] || 'Credential'
219
+
220
+ # auth_names
221
+ auth_names = opts[:debug_auth_names] || ['OAuth2']
222
+
223
+ new_options = opts.merge(
224
+ :operation => :"CredentialsApi.get_credential",
225
+ :header_params => header_params,
226
+ :query_params => query_params,
227
+ :form_params => form_params,
228
+ :body => post_body,
229
+ :auth_names => auth_names,
230
+ :return_type => return_type
231
+ )
232
+
233
+ data, status_code, headers = @api_client.call_api(:GET, local_var_path, new_options)
234
+ if @api_client.config.debugging
235
+ @api_client.config.logger.debug "API called: CredentialsApi#get_credential\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
236
+ end
237
+ return data, status_code, headers
238
+ end
239
+
240
+ # List all credentials
241
+ # Returns a paginated list of all credentials accessible to the authenticated user
242
+ # @param [Hash] opts the optional parameters
243
+ # @option opts [Integer] :per_page Number of results per page (default to 500)
244
+ # @option opts [Integer] :page Page number for pagination (default to 1)
245
+ # @option opts [Boolean] :skip_pagination Skip pagination and return all results
246
+ # @return [Array<Credential>]
247
+ def list_all_credentials(opts = {})
248
+ data, _status_code, _headers = list_all_credentials_with_http_info(opts)
249
+ data
250
+ end
251
+
252
+ # List all credentials
253
+ # Returns a paginated list of all credentials accessible to the authenticated user
254
+ # @param [Hash] opts the optional parameters
255
+ # @option opts [Integer] :per_page Number of results per page (default to 500)
256
+ # @option opts [Integer] :page Page number for pagination (default to 1)
257
+ # @option opts [Boolean] :skip_pagination Skip pagination and return all results
258
+ # @return [Array<(Array<Credential>, Integer, Hash)>] Array<Credential> data, response status code and response headers
259
+ def list_all_credentials_with_http_info(opts = {})
260
+ if @api_client.config.debugging
261
+ @api_client.config.logger.debug 'Calling API: CredentialsApi.list_all_credentials ...'
262
+ end
263
+ # resource path
264
+ local_var_path = '/api/3/credentials'
265
+
266
+ # query parameters
267
+ query_params = opts[:query_params] || {}
268
+ query_params[:'per_page'] = opts[:'per_page'] if !opts[:'per_page'].nil?
269
+ query_params[:'page'] = opts[:'page'] if !opts[:'page'].nil?
270
+ query_params[:'skip_pagination'] = opts[:'skip_pagination'] if !opts[:'skip_pagination'].nil?
271
+
272
+ # header parameters
273
+ header_params = opts[:header_params] || {}
274
+ # HTTP header 'Accept' (if needed)
275
+ header_params['Accept'] = @api_client.select_header_accept(['application/json']) unless header_params['Accept']
276
+
277
+ # form parameters
278
+ form_params = opts[:form_params] || {}
279
+
280
+ # http body (model)
281
+ post_body = opts[:debug_body]
282
+
283
+ # return_type
284
+ return_type = opts[:debug_return_type] || 'Array<Credential>'
285
+
286
+ # auth_names
287
+ auth_names = opts[:debug_auth_names] || ['OAuth2']
288
+
289
+ new_options = opts.merge(
290
+ :operation => :"CredentialsApi.list_all_credentials",
291
+ :header_params => header_params,
292
+ :query_params => query_params,
293
+ :form_params => form_params,
294
+ :body => post_body,
295
+ :auth_names => auth_names,
296
+ :return_type => return_type
297
+ )
298
+
299
+ data, status_code, headers = @api_client.call_api(:GET, local_var_path, new_options)
300
+ if @api_client.config.debugging
301
+ @api_client.config.logger.debug "API called: CredentialsApi#list_all_credentials\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
302
+ end
303
+ return data, status_code, headers
304
+ end
305
+
306
+ # List person credentials
307
+ # Returns a paginated list of credentials for a specific person, or all credentials if no person_id is provided
308
+ # @param person_id [Integer] Person ID
309
+ # @param [Hash] opts the optional parameters
310
+ # @option opts [Integer] :per_page Number of results per page (default to 500)
311
+ # @option opts [Integer] :page Page number for pagination (default to 1)
312
+ # @option opts [Boolean] :skip_pagination Skip pagination and return all results
313
+ # @return [Array<Credential>]
314
+ def list_person_credentials(person_id, opts = {})
315
+ data, _status_code, _headers = list_person_credentials_with_http_info(person_id, opts)
316
+ data
317
+ end
318
+
319
+ # List person credentials
320
+ # Returns a paginated list of credentials for a specific person, or all credentials if no person_id is provided
321
+ # @param person_id [Integer] Person ID
322
+ # @param [Hash] opts the optional parameters
323
+ # @option opts [Integer] :per_page Number of results per page (default to 500)
324
+ # @option opts [Integer] :page Page number for pagination (default to 1)
325
+ # @option opts [Boolean] :skip_pagination Skip pagination and return all results
326
+ # @return [Array<(Array<Credential>, Integer, Hash)>] Array<Credential> data, response status code and response headers
327
+ def list_person_credentials_with_http_info(person_id, opts = {})
328
+ if @api_client.config.debugging
329
+ @api_client.config.logger.debug 'Calling API: CredentialsApi.list_person_credentials ...'
330
+ end
331
+ # verify the required parameter 'person_id' is set
332
+ if @api_client.config.client_side_validation && person_id.nil?
333
+ fail ArgumentError, "Missing the required parameter 'person_id' when calling CredentialsApi.list_person_credentials"
334
+ end
335
+ # resource path
336
+ local_var_path = '/api/3/people/{person_id}/credentials'.sub('{' + 'person_id' + '}', CGI.escape(person_id.to_s))
337
+
338
+ # query parameters
339
+ query_params = opts[:query_params] || {}
340
+ query_params[:'per_page'] = opts[:'per_page'] if !opts[:'per_page'].nil?
341
+ query_params[:'page'] = opts[:'page'] if !opts[:'page'].nil?
342
+ query_params[:'skip_pagination'] = opts[:'skip_pagination'] if !opts[:'skip_pagination'].nil?
343
+
344
+ # header parameters
345
+ header_params = opts[:header_params] || {}
346
+ # HTTP header 'Accept' (if needed)
347
+ header_params['Accept'] = @api_client.select_header_accept(['application/json']) unless header_params['Accept']
348
+
349
+ # form parameters
350
+ form_params = opts[:form_params] || {}
351
+
352
+ # http body (model)
353
+ post_body = opts[:debug_body]
354
+
355
+ # return_type
356
+ return_type = opts[:debug_return_type] || 'Array<Credential>'
357
+
358
+ # auth_names
359
+ auth_names = opts[:debug_auth_names] || ['OAuth2']
360
+
361
+ new_options = opts.merge(
362
+ :operation => :"CredentialsApi.list_person_credentials",
363
+ :header_params => header_params,
364
+ :query_params => query_params,
365
+ :form_params => form_params,
366
+ :body => post_body,
367
+ :auth_names => auth_names,
368
+ :return_type => return_type
369
+ )
370
+
371
+ data, status_code, headers = @api_client.call_api(:GET, local_var_path, new_options)
372
+ if @api_client.config.debugging
373
+ @api_client.config.logger.debug "API called: CredentialsApi#list_person_credentials\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
374
+ end
375
+ return data, status_code, headers
376
+ end
377
+
378
+ # Update credential
379
+ # Updates the value of an existing credential
380
+ # @param person_id [Integer] Person ID
381
+ # @param id [String] Credential ID (hashid)
382
+ # @param credential_update_input [CredentialUpdateInput]
383
+ # @param [Hash] opts the optional parameters
384
+ # @return [Credential]
385
+ def update_credential(person_id, id, credential_update_input, opts = {})
386
+ data, _status_code, _headers = update_credential_with_http_info(person_id, id, credential_update_input, opts)
387
+ data
388
+ end
389
+
390
+ # Update credential
391
+ # Updates the value of an existing credential
392
+ # @param person_id [Integer] Person ID
393
+ # @param id [String] Credential ID (hashid)
394
+ # @param credential_update_input [CredentialUpdateInput]
395
+ # @param [Hash] opts the optional parameters
396
+ # @return [Array<(Credential, Integer, Hash)>] Credential data, response status code and response headers
397
+ def update_credential_with_http_info(person_id, id, credential_update_input, opts = {})
398
+ if @api_client.config.debugging
399
+ @api_client.config.logger.debug 'Calling API: CredentialsApi.update_credential ...'
400
+ end
401
+ # verify the required parameter 'person_id' is set
402
+ if @api_client.config.client_side_validation && person_id.nil?
403
+ fail ArgumentError, "Missing the required parameter 'person_id' when calling CredentialsApi.update_credential"
404
+ end
405
+ # verify the required parameter 'id' is set
406
+ if @api_client.config.client_side_validation && id.nil?
407
+ fail ArgumentError, "Missing the required parameter 'id' when calling CredentialsApi.update_credential"
408
+ end
409
+ # verify the required parameter 'credential_update_input' is set
410
+ if @api_client.config.client_side_validation && credential_update_input.nil?
411
+ fail ArgumentError, "Missing the required parameter 'credential_update_input' when calling CredentialsApi.update_credential"
412
+ end
413
+ # resource path
414
+ local_var_path = '/api/3/people/{person_id}/credentials/{id}'.sub('{' + 'person_id' + '}', CGI.escape(person_id.to_s)).sub('{' + 'id' + '}', CGI.escape(id.to_s))
415
+
416
+ # query parameters
417
+ query_params = opts[:query_params] || {}
418
+
419
+ # header parameters
420
+ header_params = opts[:header_params] || {}
421
+ # HTTP header 'Accept' (if needed)
422
+ header_params['Accept'] = @api_client.select_header_accept(['application/json']) unless header_params['Accept']
423
+ # HTTP header 'Content-Type'
424
+ content_type = @api_client.select_header_content_type(['application/json'])
425
+ if !content_type.nil?
426
+ header_params['Content-Type'] = content_type
427
+ end
428
+
429
+ # form parameters
430
+ form_params = opts[:form_params] || {}
431
+
432
+ # http body (model)
433
+ post_body = opts[:debug_body] || @api_client.object_to_http_body(credential_update_input)
434
+
435
+ # return_type
436
+ return_type = opts[:debug_return_type] || 'Credential'
437
+
438
+ # auth_names
439
+ auth_names = opts[:debug_auth_names] || ['OAuth2']
440
+
441
+ new_options = opts.merge(
442
+ :operation => :"CredentialsApi.update_credential",
443
+ :header_params => header_params,
444
+ :query_params => query_params,
445
+ :form_params => form_params,
446
+ :body => post_body,
447
+ :auth_names => auth_names,
448
+ :return_type => return_type
449
+ )
450
+
451
+ data, status_code, headers = @api_client.call_api(:PUT, local_var_path, new_options)
452
+ if @api_client.config.debugging
453
+ @api_client.config.logger.debug "API called: CredentialsApi#update_credential\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
454
+ end
455
+ return data, status_code, headers
456
+ end
457
+ end
458
+ end