falaai-api 1.21.47

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 (130) hide show
  1. checksums.yaml +7 -0
  2. data/LICENSE +21 -0
  3. data/README.md +205 -0
  4. data/docs/AnalysisApi.md +147 -0
  5. data/docs/AudioEvent.md +26 -0
  6. data/docs/AudioInputMeta.md +26 -0
  7. data/docs/AuditoriaRiscoAnalysisV2.md +22 -0
  8. data/docs/AuditoriaRiscoAppliedActionV2.md +32 -0
  9. data/docs/AuditoriaRiscoAudioEventModelV2.md +22 -0
  10. data/docs/AuditoriaRiscoAuditDecisionsV2.md +22 -0
  11. data/docs/AuditoriaRiscoConversationScoresV2.md +38 -0
  12. data/docs/AuditoriaRiscoDetectionItemV2.md +110 -0
  13. data/docs/AuditoriaRiscoDetectionsV2.md +26 -0
  14. data/docs/AuditoriaRiscoIndexerV2.md +18 -0
  15. data/docs/AuditoriaRiscoMetaV2.md +28 -0
  16. data/docs/AuditoriaRiscoParticipantV2.md +22 -0
  17. data/docs/AuditoriaRiscoParticipantsV2.md +26 -0
  18. data/docs/AuditoriaRiscoRequest.md +38 -0
  19. data/docs/AuditoriaRiscoScoresV2.md +20 -0
  20. data/docs/AuditoriaRiscoScoringExplanationV2.md +20 -0
  21. data/docs/AuditoriaRiscoSummaryV2.md +48 -0
  22. data/docs/AuditoriaRiscoTimelineV2.md +22 -0
  23. data/docs/AuditoriaRiscoUsageV2.md +22 -0
  24. data/docs/AuditoriaRiscoV2.md +46 -0
  25. data/docs/AuditoriaRiscoV2Response.md +18 -0
  26. data/docs/AuditoriaRiscoVerdictV2.md +30 -0
  27. data/docs/CreateEmailAlertRequest.md +22 -0
  28. data/docs/CreateWebhookRequest.md +24 -0
  29. data/docs/DiagnosticAnalysisMap.md +28 -0
  30. data/docs/DiagnosticAudioEvent.md +26 -0
  31. data/docs/DiagnosticCategoricalAnalysis.md +22 -0
  32. data/docs/DiagnosticRequest.md +30 -0
  33. data/docs/DiagnosticResponse.md +28 -0
  34. data/docs/DiagnosticTextAnalysis.md +18 -0
  35. data/docs/DiagnosticUsage.md +22 -0
  36. data/docs/EmailAlertItem.md +32 -0
  37. data/docs/EmailAlertListResponse.md +22 -0
  38. data/docs/EmailAlertMessageResponse.md +18 -0
  39. data/docs/EmailAlertsApi.md +285 -0
  40. data/docs/EmailEvent.md +15 -0
  41. data/docs/HTTPValidationError.md +18 -0
  42. data/docs/HealthApi.md +137 -0
  43. data/docs/HealthResponse.md +28 -0
  44. data/docs/LocationInner.md +15 -0
  45. data/docs/MessageResponse.md +18 -0
  46. data/docs/Participant.md +22 -0
  47. data/docs/ParticipantDiagnostic.md +26 -0
  48. data/docs/SpeechApi.md +85 -0
  49. data/docs/TranscriptionResponse.md +49 -0
  50. data/docs/TranscriptionUsage.md +22 -0
  51. data/docs/UpdateEmailAlertRequest.md +24 -0
  52. data/docs/UpdateWebhookRequest.md +26 -0
  53. data/docs/UsageApi.md +151 -0
  54. data/docs/UsageByKeyItem.md +26 -0
  55. data/docs/UsageLogItem.md +28 -0
  56. data/docs/UsageLogResponse.md +22 -0
  57. data/docs/ValidationError.md +26 -0
  58. data/docs/VersionApi.md +72 -0
  59. data/docs/VersionResponse.md +22 -0
  60. data/docs/WebhookEvent.md +15 -0
  61. data/docs/WebhookItem.md +42 -0
  62. data/docs/WebhookListResponse.md +22 -0
  63. data/docs/WebhooksApi.md +293 -0
  64. data/lib/falaai-api/api/analysis_api.rb +158 -0
  65. data/lib/falaai-api/api/email_alerts_api.rb +294 -0
  66. data/lib/falaai-api/api/health_api.rb +132 -0
  67. data/lib/falaai-api/api/speech_api.rb +100 -0
  68. data/lib/falaai-api/api/usage_api.rb +156 -0
  69. data/lib/falaai-api/api/version_api.rb +77 -0
  70. data/lib/falaai-api/api/webhooks_api.rb +302 -0
  71. data/lib/falaai-api/api_client.rb +397 -0
  72. data/lib/falaai-api/api_error.rb +58 -0
  73. data/lib/falaai-api/api_model_base.rb +88 -0
  74. data/lib/falaai-api/configuration.rb +309 -0
  75. data/lib/falaai-api/models/audio_event.rb +273 -0
  76. data/lib/falaai-api/models/audio_input_meta.rb +273 -0
  77. data/lib/falaai-api/models/auditoria_risco_analysis_v2.rb +174 -0
  78. data/lib/falaai-api/models/auditoria_risco_applied_action_v2.rb +292 -0
  79. data/lib/falaai-api/models/auditoria_risco_audio_event_model_v2.rb +174 -0
  80. data/lib/falaai-api/models/auditoria_risco_audit_decisions_v2.rb +170 -0
  81. data/lib/falaai-api/models/auditoria_risco_conversation_scores_v2.rb +251 -0
  82. data/lib/falaai-api/models/auditoria_risco_detection_item_v2.rb +651 -0
  83. data/lib/falaai-api/models/auditoria_risco_detections_v2.rb +198 -0
  84. data/lib/falaai-api/models/auditoria_risco_indexer_v2.rb +150 -0
  85. data/lib/falaai-api/models/auditoria_risco_meta_v2.rb +234 -0
  86. data/lib/falaai-api/models/auditoria_risco_participant_v2.rb +168 -0
  87. data/lib/falaai-api/models/auditoria_risco_participants_v2.rb +196 -0
  88. data/lib/falaai-api/models/auditoria_risco_request.rb +451 -0
  89. data/lib/falaai-api/models/auditoria_risco_scores_v2.rb +177 -0
  90. data/lib/falaai-api/models/auditoria_risco_scoring_explanation_v2.rb +160 -0
  91. data/lib/falaai-api/models/auditoria_risco_summary_v2.rb +300 -0
  92. data/lib/falaai-api/models/auditoria_risco_timeline_v2.rb +174 -0
  93. data/lib/falaai-api/models/auditoria_risco_usage_v2.rb +219 -0
  94. data/lib/falaai-api/models/auditoria_risco_v2.rb +548 -0
  95. data/lib/falaai-api/models/auditoria_risco_v2_response.rb +165 -0
  96. data/lib/falaai-api/models/auditoria_risco_verdict_v2.rb +213 -0
  97. data/lib/falaai-api/models/create_email_alert_request.rb +221 -0
  98. data/lib/falaai-api/models/create_webhook_request.rb +233 -0
  99. data/lib/falaai-api/models/diagnostic_analysis_map.rb +285 -0
  100. data/lib/falaai-api/models/diagnostic_audio_event.rb +205 -0
  101. data/lib/falaai-api/models/diagnostic_categorical_analysis.rb +170 -0
  102. data/lib/falaai-api/models/diagnostic_request.rb +316 -0
  103. data/lib/falaai-api/models/diagnostic_response.rb +283 -0
  104. data/lib/falaai-api/models/diagnostic_text_analysis.rb +148 -0
  105. data/lib/falaai-api/models/diagnostic_usage.rb +219 -0
  106. data/lib/falaai-api/models/email_alert_item.rb +356 -0
  107. data/lib/falaai-api/models/email_alert_list_response.rb +218 -0
  108. data/lib/falaai-api/models/email_alert_message_response.rb +165 -0
  109. data/lib/falaai-api/models/email_event.rb +47 -0
  110. data/lib/falaai-api/models/health_response.rb +300 -0
  111. data/lib/falaai-api/models/http_validation_error.rb +149 -0
  112. data/lib/falaai-api/models/location_inner.rb +103 -0
  113. data/lib/falaai-api/models/message_response.rb +165 -0
  114. data/lib/falaai-api/models/participant.rb +226 -0
  115. data/lib/falaai-api/models/participant_diagnostic.rb +222 -0
  116. data/lib/falaai-api/models/transcription_response.rb +540 -0
  117. data/lib/falaai-api/models/transcription_usage.rb +219 -0
  118. data/lib/falaai-api/models/update_email_alert_request.rb +176 -0
  119. data/lib/falaai-api/models/update_webhook_request.rb +190 -0
  120. data/lib/falaai-api/models/usage_by_key_item.rb +256 -0
  121. data/lib/falaai-api/models/usage_log_item.rb +300 -0
  122. data/lib/falaai-api/models/usage_log_response.rb +218 -0
  123. data/lib/falaai-api/models/validation_error.rb +237 -0
  124. data/lib/falaai-api/models/version_response.rb +219 -0
  125. data/lib/falaai-api/models/webhook_event.rb +48 -0
  126. data/lib/falaai-api/models/webhook_item.rb +442 -0
  127. data/lib/falaai-api/models/webhook_list_response.rb +218 -0
  128. data/lib/falaai-api/version.rb +15 -0
  129. data/lib/falaai-api.rb +100 -0
  130. metadata +229 -0
@@ -0,0 +1,156 @@
1
+ =begin
2
+ #FalaAI API
3
+
4
+ #Transcribe, diagnose and score calls with 3 simple endpoints. **Endpoints:** - `POST /v1/audio/transcriptions` — Audio to text - `POST /v1/analyze/diagnostic` — Conversation analysis - `POST /v1/analyze/auditoriaRisco` — Compliance audit **Complete flow (Python):** ```python import httpx API = 'https://api.fala.ai' KEY = 'fai_xxx' HD = {'Authorization': f'Bearer {KEY}'} # 1. Transcribe files = {'file': open('call.mp3', 'rb')} resp = httpx.post(f'{API}/v1/audio/transcriptions', headers=HD, files=files, data={'model': 'falaai-transcribe-1', 'language': 'pt'}) tr = resp.json() print(f'Text: {tr[\"text\"][:100]}...') # 2. Diagnose resp = httpx.post(f'{API}/v1/analyze/diagnostic', headers=HD, json={'dialog': tr['dialog'], 'language': 'pt-BR', 'duration_seconds': tr['duration_seconds']}) diag = resp.json() print(f'Sentiment: {diag[\"analysis\"][\"sentiment\"][\"list_choice\"]}') print(f'Summary: {diag[\"analysis\"][\"dialogue_summary\"][\"explanation\"][:100]}...') # 3. Audit resp = httpx.post(f'{API}/v1/analyze/auditoriaRisco', headers=HD, json={'dialogo': tr['dialog'], 'duration_seconds': tr['duration_seconds']}) audit = resp.json() print(f'Score: {audit[\"audit_score\"]} | Verdict: {audit[\"verdict\"]}') print(f'Detections: {audit[\"total_detections\"]} | Violations: {len(audit[\"violations\"])} | Positives: {len(audit[\"positives\"])}') ``` **Authentication:** All endpoints require an API Key in the `Authorization` header: `Bearer fai_xxx` Get your API Key at [falaai.action.tec.br/api](https://falaai.action.tec.br/api)
5
+
6
+ The version of the OpenAPI document: 1.21.47
7
+
8
+ Generated by: https://openapi-generator.tech
9
+ Generator version: 7.25.0
10
+
11
+ =end
12
+
13
+ require 'cgi'
14
+
15
+ module FalaAI
16
+ class UsageApi
17
+ attr_accessor :api_client
18
+
19
+ def initialize(api_client = ApiClient.default)
20
+ @api_client = api_client
21
+ end
22
+ # Get Usage By Key
23
+ # @param [Hash] opts the optional parameters
24
+ # @option opts [String] :key_id
25
+ # @return [Array<UsageByKeyItem>]
26
+ def get_usage_by_key_v1_usage_by_key_get(opts = {})
27
+ data, _status_code, _headers = get_usage_by_key_v1_usage_by_key_get_with_http_info(opts)
28
+ data
29
+ end
30
+
31
+ # Get Usage By Key
32
+ # @param [Hash] opts the optional parameters
33
+ # @option opts [String] :key_id
34
+ # @return [Array<(Array<UsageByKeyItem>, Integer, Hash)>] Array<UsageByKeyItem> data, response status code and response headers
35
+ def get_usage_by_key_v1_usage_by_key_get_with_http_info(opts = {})
36
+ if @api_client.config.debugging
37
+ @api_client.config.logger.debug 'Calling API: UsageApi.get_usage_by_key_v1_usage_by_key_get ...'
38
+ end
39
+ # resource path
40
+ local_var_path = '/v1/usage/by-key'
41
+
42
+ # query parameters
43
+ query_params = opts[:query_params] || {}
44
+ query_params[:'key_id'] = opts[:'key_id'] if !opts[:'key_id'].nil?
45
+
46
+ # header parameters
47
+ header_params = opts[:header_params] || {}
48
+ # HTTP header 'Accept' (if needed)
49
+ header_params['Accept'] = @api_client.select_header_accept(['application/json']) unless header_params['Accept']
50
+
51
+ # form parameters
52
+ form_params = opts[:form_params] || {}
53
+
54
+ # http body (model)
55
+ post_body = opts[:debug_body]
56
+
57
+ # return_type
58
+ return_type = opts[:debug_return_type] || 'Array<UsageByKeyItem>'
59
+
60
+ # auth_names
61
+ auth_names = opts[:debug_auth_names] || ['ApiKeyAuth']
62
+
63
+ new_options = opts.merge(
64
+ :operation => :"UsageApi.get_usage_by_key_v1_usage_by_key_get",
65
+ :header_params => header_params,
66
+ :query_params => query_params,
67
+ :form_params => form_params,
68
+ :body => post_body,
69
+ :auth_names => auth_names,
70
+ :return_type => return_type
71
+ )
72
+
73
+ data, status_code, headers = @api_client.call_api(:GET, local_var_path, new_options)
74
+ if @api_client.config.debugging
75
+ @api_client.config.logger.debug "API called: UsageApi#get_usage_by_key_v1_usage_by_key_get\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
76
+ end
77
+ return data, status_code, headers
78
+ end
79
+
80
+ # Get Usage Log
81
+ # @param [Hash] opts the optional parameters
82
+ # @option opts [Integer] :page (default to 1)
83
+ # @option opts [Integer] :limit (default to 20)
84
+ # @option opts [String] :api_key_id
85
+ # @return [UsageLogResponse]
86
+ def get_usage_log_v1_usage_log_get(opts = {})
87
+ data, _status_code, _headers = get_usage_log_v1_usage_log_get_with_http_info(opts)
88
+ data
89
+ end
90
+
91
+ # Get Usage Log
92
+ # @param [Hash] opts the optional parameters
93
+ # @option opts [Integer] :page (default to 1)
94
+ # @option opts [Integer] :limit (default to 20)
95
+ # @option opts [String] :api_key_id
96
+ # @return [Array<(UsageLogResponse, Integer, Hash)>] UsageLogResponse data, response status code and response headers
97
+ def get_usage_log_v1_usage_log_get_with_http_info(opts = {})
98
+ if @api_client.config.debugging
99
+ @api_client.config.logger.debug 'Calling API: UsageApi.get_usage_log_v1_usage_log_get ...'
100
+ end
101
+ if @api_client.config.client_side_validation && !opts[:'page'].nil? && opts[:'page'] < 1
102
+ fail ArgumentError, 'invalid value for "opts[:"page"]" when calling UsageApi.get_usage_log_v1_usage_log_get, must be greater than or equal to 1.'
103
+ end
104
+
105
+ if @api_client.config.client_side_validation && !opts[:'limit'].nil? && opts[:'limit'] > 100
106
+ fail ArgumentError, 'invalid value for "opts[:"limit"]" when calling UsageApi.get_usage_log_v1_usage_log_get, must be smaller than or equal to 100.'
107
+ end
108
+
109
+ if @api_client.config.client_side_validation && !opts[:'limit'].nil? && opts[:'limit'] < 1
110
+ fail ArgumentError, 'invalid value for "opts[:"limit"]" when calling UsageApi.get_usage_log_v1_usage_log_get, must be greater than or equal to 1.'
111
+ end
112
+
113
+ # resource path
114
+ local_var_path = '/v1/usage/log'
115
+
116
+ # query parameters
117
+ query_params = opts[:query_params] || {}
118
+ query_params[:'page'] = opts[:'page'] if !opts[:'page'].nil?
119
+ query_params[:'limit'] = opts[:'limit'] if !opts[:'limit'].nil?
120
+ query_params[:'api_key_id'] = opts[:'api_key_id'] if !opts[:'api_key_id'].nil?
121
+
122
+ # header parameters
123
+ header_params = opts[:header_params] || {}
124
+ # HTTP header 'Accept' (if needed)
125
+ header_params['Accept'] = @api_client.select_header_accept(['application/json']) unless header_params['Accept']
126
+
127
+ # form parameters
128
+ form_params = opts[:form_params] || {}
129
+
130
+ # http body (model)
131
+ post_body = opts[:debug_body]
132
+
133
+ # return_type
134
+ return_type = opts[:debug_return_type] || 'UsageLogResponse'
135
+
136
+ # auth_names
137
+ auth_names = opts[:debug_auth_names] || ['ApiKeyAuth']
138
+
139
+ new_options = opts.merge(
140
+ :operation => :"UsageApi.get_usage_log_v1_usage_log_get",
141
+ :header_params => header_params,
142
+ :query_params => query_params,
143
+ :form_params => form_params,
144
+ :body => post_body,
145
+ :auth_names => auth_names,
146
+ :return_type => return_type
147
+ )
148
+
149
+ data, status_code, headers = @api_client.call_api(:GET, local_var_path, new_options)
150
+ if @api_client.config.debugging
151
+ @api_client.config.logger.debug "API called: UsageApi#get_usage_log_v1_usage_log_get\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
152
+ end
153
+ return data, status_code, headers
154
+ end
155
+ end
156
+ end
@@ -0,0 +1,77 @@
1
+ =begin
2
+ #FalaAI API
3
+
4
+ #Transcribe, diagnose and score calls with 3 simple endpoints. **Endpoints:** - `POST /v1/audio/transcriptions` — Audio to text - `POST /v1/analyze/diagnostic` — Conversation analysis - `POST /v1/analyze/auditoriaRisco` — Compliance audit **Complete flow (Python):** ```python import httpx API = 'https://api.fala.ai' KEY = 'fai_xxx' HD = {'Authorization': f'Bearer {KEY}'} # 1. Transcribe files = {'file': open('call.mp3', 'rb')} resp = httpx.post(f'{API}/v1/audio/transcriptions', headers=HD, files=files, data={'model': 'falaai-transcribe-1', 'language': 'pt'}) tr = resp.json() print(f'Text: {tr[\"text\"][:100]}...') # 2. Diagnose resp = httpx.post(f'{API}/v1/analyze/diagnostic', headers=HD, json={'dialog': tr['dialog'], 'language': 'pt-BR', 'duration_seconds': tr['duration_seconds']}) diag = resp.json() print(f'Sentiment: {diag[\"analysis\"][\"sentiment\"][\"list_choice\"]}') print(f'Summary: {diag[\"analysis\"][\"dialogue_summary\"][\"explanation\"][:100]}...') # 3. Audit resp = httpx.post(f'{API}/v1/analyze/auditoriaRisco', headers=HD, json={'dialogo': tr['dialog'], 'duration_seconds': tr['duration_seconds']}) audit = resp.json() print(f'Score: {audit[\"audit_score\"]} | Verdict: {audit[\"verdict\"]}') print(f'Detections: {audit[\"total_detections\"]} | Violations: {len(audit[\"violations\"])} | Positives: {len(audit[\"positives\"])}') ``` **Authentication:** All endpoints require an API Key in the `Authorization` header: `Bearer fai_xxx` Get your API Key at [falaai.action.tec.br/api](https://falaai.action.tec.br/api)
5
+
6
+ The version of the OpenAPI document: 1.21.47
7
+
8
+ Generated by: https://openapi-generator.tech
9
+ Generator version: 7.25.0
10
+
11
+ =end
12
+
13
+ require 'cgi'
14
+
15
+ module FalaAI
16
+ class VersionApi
17
+ attr_accessor :api_client
18
+
19
+ def initialize(api_client = ApiClient.default)
20
+ @api_client = api_client
21
+ end
22
+ # Get Version
23
+ # @param [Hash] opts the optional parameters
24
+ # @return [VersionResponse]
25
+ def get_version_api_version_get(opts = {})
26
+ data, _status_code, _headers = get_version_api_version_get_with_http_info(opts)
27
+ data
28
+ end
29
+
30
+ # Get Version
31
+ # @param [Hash] opts the optional parameters
32
+ # @return [Array<(VersionResponse, Integer, Hash)>] VersionResponse data, response status code and response headers
33
+ def get_version_api_version_get_with_http_info(opts = {})
34
+ if @api_client.config.debugging
35
+ @api_client.config.logger.debug 'Calling API: VersionApi.get_version_api_version_get ...'
36
+ end
37
+ # resource path
38
+ local_var_path = '/api/version'
39
+
40
+ # query parameters
41
+ query_params = opts[:query_params] || {}
42
+
43
+ # header parameters
44
+ header_params = opts[:header_params] || {}
45
+ # HTTP header 'Accept' (if needed)
46
+ header_params['Accept'] = @api_client.select_header_accept(['application/json']) unless header_params['Accept']
47
+
48
+ # form parameters
49
+ form_params = opts[:form_params] || {}
50
+
51
+ # http body (model)
52
+ post_body = opts[:debug_body]
53
+
54
+ # return_type
55
+ return_type = opts[:debug_return_type] || 'VersionResponse'
56
+
57
+ # auth_names
58
+ auth_names = opts[:debug_auth_names] || ['ApiKeyAuth']
59
+
60
+ new_options = opts.merge(
61
+ :operation => :"VersionApi.get_version_api_version_get",
62
+ :header_params => header_params,
63
+ :query_params => query_params,
64
+ :form_params => form_params,
65
+ :body => post_body,
66
+ :auth_names => auth_names,
67
+ :return_type => return_type
68
+ )
69
+
70
+ data, status_code, headers = @api_client.call_api(:GET, local_var_path, new_options)
71
+ if @api_client.config.debugging
72
+ @api_client.config.logger.debug "API called: VersionApi#get_version_api_version_get\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
73
+ end
74
+ return data, status_code, headers
75
+ end
76
+ end
77
+ end
@@ -0,0 +1,302 @@
1
+ =begin
2
+ #FalaAI API
3
+
4
+ #Transcribe, diagnose and score calls with 3 simple endpoints. **Endpoints:** - `POST /v1/audio/transcriptions` — Audio to text - `POST /v1/analyze/diagnostic` — Conversation analysis - `POST /v1/analyze/auditoriaRisco` — Compliance audit **Complete flow (Python):** ```python import httpx API = 'https://api.fala.ai' KEY = 'fai_xxx' HD = {'Authorization': f'Bearer {KEY}'} # 1. Transcribe files = {'file': open('call.mp3', 'rb')} resp = httpx.post(f'{API}/v1/audio/transcriptions', headers=HD, files=files, data={'model': 'falaai-transcribe-1', 'language': 'pt'}) tr = resp.json() print(f'Text: {tr[\"text\"][:100]}...') # 2. Diagnose resp = httpx.post(f'{API}/v1/analyze/diagnostic', headers=HD, json={'dialog': tr['dialog'], 'language': 'pt-BR', 'duration_seconds': tr['duration_seconds']}) diag = resp.json() print(f'Sentiment: {diag[\"analysis\"][\"sentiment\"][\"list_choice\"]}') print(f'Summary: {diag[\"analysis\"][\"dialogue_summary\"][\"explanation\"][:100]}...') # 3. Audit resp = httpx.post(f'{API}/v1/analyze/auditoriaRisco', headers=HD, json={'dialogo': tr['dialog'], 'duration_seconds': tr['duration_seconds']}) audit = resp.json() print(f'Score: {audit[\"audit_score\"]} | Verdict: {audit[\"verdict\"]}') print(f'Detections: {audit[\"total_detections\"]} | Violations: {len(audit[\"violations\"])} | Positives: {len(audit[\"positives\"])}') ``` **Authentication:** All endpoints require an API Key in the `Authorization` header: `Bearer fai_xxx` Get your API Key at [falaai.action.tec.br/api](https://falaai.action.tec.br/api)
5
+
6
+ The version of the OpenAPI document: 1.21.47
7
+
8
+ Generated by: https://openapi-generator.tech
9
+ Generator version: 7.25.0
10
+
11
+ =end
12
+
13
+ require 'cgi'
14
+
15
+ module FalaAI
16
+ class WebhooksApi
17
+ attr_accessor :api_client
18
+
19
+ def initialize(api_client = ApiClient.default)
20
+ @api_client = api_client
21
+ end
22
+ # Criar webhook de alertas
23
+ # Cria inscricao para eventos de alerta (10 alertas). Payload enviado: WebhookPayload(event, data, timestamp) com HMAC FalaAI-Signature. Para comprovar a origem, recalcule HMAC-SHA256 de \"timestamp.body\" com seu secret (exemplos: /examples/download/python.zip e nodejs.zip, arquivo webhook_verify).
24
+ # @param create_webhook_request [CreateWebhookRequest]
25
+ # @param [Hash] opts the optional parameters
26
+ # @return [WebhookItem]
27
+ def create_webhook_v1_webhooks_post(create_webhook_request, opts = {})
28
+ data, _status_code, _headers = create_webhook_v1_webhooks_post_with_http_info(create_webhook_request, opts)
29
+ data
30
+ end
31
+
32
+ # Criar webhook de alertas
33
+ # Cria inscricao para eventos de alerta (10 alertas). Payload enviado: WebhookPayload(event, data, timestamp) com HMAC FalaAI-Signature. Para comprovar a origem, recalcule HMAC-SHA256 de \&quot;timestamp.body\&quot; com seu secret (exemplos: /examples/download/python.zip e nodejs.zip, arquivo webhook_verify).
34
+ # @param create_webhook_request [CreateWebhookRequest]
35
+ # @param [Hash] opts the optional parameters
36
+ # @return [Array<(WebhookItem, Integer, Hash)>] WebhookItem data, response status code and response headers
37
+ def create_webhook_v1_webhooks_post_with_http_info(create_webhook_request, opts = {})
38
+ if @api_client.config.debugging
39
+ @api_client.config.logger.debug 'Calling API: WebhooksApi.create_webhook_v1_webhooks_post ...'
40
+ end
41
+ # verify the required parameter 'create_webhook_request' is set
42
+ if @api_client.config.client_side_validation && create_webhook_request.nil?
43
+ fail ArgumentError, "Missing the required parameter 'create_webhook_request' when calling WebhooksApi.create_webhook_v1_webhooks_post"
44
+ end
45
+ # resource path
46
+ local_var_path = '/v1/webhooks'
47
+
48
+ # query parameters
49
+ query_params = opts[:query_params] || {}
50
+
51
+ # header parameters
52
+ header_params = opts[:header_params] || {}
53
+ # HTTP header 'Accept' (if needed)
54
+ header_params['Accept'] = @api_client.select_header_accept(['application/json']) unless header_params['Accept']
55
+ # HTTP header 'Content-Type'
56
+ content_type = @api_client.select_header_content_type(['application/json'])
57
+ if !content_type.nil?
58
+ header_params['Content-Type'] = content_type
59
+ end
60
+
61
+ # form parameters
62
+ form_params = opts[:form_params] || {}
63
+
64
+ # http body (model)
65
+ post_body = opts[:debug_body] || @api_client.object_to_http_body(create_webhook_request)
66
+
67
+ # return_type
68
+ return_type = opts[:debug_return_type] || 'WebhookItem'
69
+
70
+ # auth_names
71
+ auth_names = opts[:debug_auth_names] || ['ApiKeyAuth']
72
+
73
+ new_options = opts.merge(
74
+ :operation => :"WebhooksApi.create_webhook_v1_webhooks_post",
75
+ :header_params => header_params,
76
+ :query_params => query_params,
77
+ :form_params => form_params,
78
+ :body => post_body,
79
+ :auth_names => auth_names,
80
+ :return_type => return_type
81
+ )
82
+
83
+ data, status_code, headers = @api_client.call_api(:POST, local_var_path, new_options)
84
+ if @api_client.config.debugging
85
+ @api_client.config.logger.debug "API called: WebhooksApi#create_webhook_v1_webhooks_post\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
86
+ end
87
+ return data, status_code, headers
88
+ end
89
+
90
+ # Remover webhook
91
+ # Remove inscricao de webhook por ID.
92
+ # @param webhook_id [String]
93
+ # @param [Hash] opts the optional parameters
94
+ # @return [MessageResponse]
95
+ def delete_webhook_v1_webhooks_webhook_id_delete(webhook_id, opts = {})
96
+ data, _status_code, _headers = delete_webhook_v1_webhooks_webhook_id_delete_with_http_info(webhook_id, opts)
97
+ data
98
+ end
99
+
100
+ # Remover webhook
101
+ # Remove inscricao de webhook por ID.
102
+ # @param webhook_id [String]
103
+ # @param [Hash] opts the optional parameters
104
+ # @return [Array<(MessageResponse, Integer, Hash)>] MessageResponse data, response status code and response headers
105
+ def delete_webhook_v1_webhooks_webhook_id_delete_with_http_info(webhook_id, opts = {})
106
+ if @api_client.config.debugging
107
+ @api_client.config.logger.debug 'Calling API: WebhooksApi.delete_webhook_v1_webhooks_webhook_id_delete ...'
108
+ end
109
+ # verify the required parameter 'webhook_id' is set
110
+ if @api_client.config.client_side_validation && webhook_id.nil?
111
+ fail ArgumentError, "Missing the required parameter 'webhook_id' when calling WebhooksApi.delete_webhook_v1_webhooks_webhook_id_delete"
112
+ end
113
+ # resource path
114
+ local_var_path = '/v1/webhooks/{webhook_id}'.sub('{webhook_id}', CGI.escape(webhook_id.to_s))
115
+
116
+ # query parameters
117
+ query_params = opts[:query_params] || {}
118
+
119
+ # header parameters
120
+ header_params = opts[:header_params] || {}
121
+ # HTTP header 'Accept' (if needed)
122
+ header_params['Accept'] = @api_client.select_header_accept(['application/json']) unless header_params['Accept']
123
+
124
+ # form parameters
125
+ form_params = opts[:form_params] || {}
126
+
127
+ # http body (model)
128
+ post_body = opts[:debug_body]
129
+
130
+ # return_type
131
+ return_type = opts[:debug_return_type] || 'MessageResponse'
132
+
133
+ # auth_names
134
+ auth_names = opts[:debug_auth_names] || ['ApiKeyAuth']
135
+
136
+ new_options = opts.merge(
137
+ :operation => :"WebhooksApi.delete_webhook_v1_webhooks_webhook_id_delete",
138
+ :header_params => header_params,
139
+ :query_params => query_params,
140
+ :form_params => form_params,
141
+ :body => post_body,
142
+ :auth_names => auth_names,
143
+ :return_type => return_type
144
+ )
145
+
146
+ data, status_code, headers = @api_client.call_api(:DELETE, local_var_path, new_options)
147
+ if @api_client.config.debugging
148
+ @api_client.config.logger.debug "API called: WebhooksApi#delete_webhook_v1_webhooks_webhook_id_delete\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
149
+ end
150
+ return data, status_code, headers
151
+ end
152
+
153
+ # Listar webhooks de alertas
154
+ # Lista webhooks do usuario autenticado (10 alertas). Paginado. Inclui o secret da assinatura da URL (sempre visivel ao dono).
155
+ # @param [Hash] opts the optional parameters
156
+ # @option opts [Integer] :page Pagina (1-indexed) (default to 1)
157
+ # @option opts [Integer] :limit Itens por pagina (max 100) (default to 20)
158
+ # @return [WebhookListResponse]
159
+ def list_webhooks_v1_webhooks_get(opts = {})
160
+ data, _status_code, _headers = list_webhooks_v1_webhooks_get_with_http_info(opts)
161
+ data
162
+ end
163
+
164
+ # Listar webhooks de alertas
165
+ # Lista webhooks do usuario autenticado (10 alertas). Paginado. Inclui o secret da assinatura da URL (sempre visivel ao dono).
166
+ # @param [Hash] opts the optional parameters
167
+ # @option opts [Integer] :page Pagina (1-indexed) (default to 1)
168
+ # @option opts [Integer] :limit Itens por pagina (max 100) (default to 20)
169
+ # @return [Array<(WebhookListResponse, Integer, Hash)>] WebhookListResponse data, response status code and response headers
170
+ def list_webhooks_v1_webhooks_get_with_http_info(opts = {})
171
+ if @api_client.config.debugging
172
+ @api_client.config.logger.debug 'Calling API: WebhooksApi.list_webhooks_v1_webhooks_get ...'
173
+ end
174
+ if @api_client.config.client_side_validation && !opts[:'page'].nil? && opts[:'page'] < 1
175
+ fail ArgumentError, 'invalid value for "opts[:"page"]" when calling WebhooksApi.list_webhooks_v1_webhooks_get, must be greater than or equal to 1.'
176
+ end
177
+
178
+ if @api_client.config.client_side_validation && !opts[:'limit'].nil? && opts[:'limit'] > 100
179
+ fail ArgumentError, 'invalid value for "opts[:"limit"]" when calling WebhooksApi.list_webhooks_v1_webhooks_get, must be smaller than or equal to 100.'
180
+ end
181
+
182
+ if @api_client.config.client_side_validation && !opts[:'limit'].nil? && opts[:'limit'] < 1
183
+ fail ArgumentError, 'invalid value for "opts[:"limit"]" when calling WebhooksApi.list_webhooks_v1_webhooks_get, must be greater than or equal to 1.'
184
+ end
185
+
186
+ # resource path
187
+ local_var_path = '/v1/webhooks'
188
+
189
+ # query parameters
190
+ query_params = opts[:query_params] || {}
191
+ query_params[:'page'] = opts[:'page'] if !opts[:'page'].nil?
192
+ query_params[:'limit'] = opts[:'limit'] if !opts[:'limit'].nil?
193
+
194
+ # header parameters
195
+ header_params = opts[:header_params] || {}
196
+ # HTTP header 'Accept' (if needed)
197
+ header_params['Accept'] = @api_client.select_header_accept(['application/json']) unless header_params['Accept']
198
+
199
+ # form parameters
200
+ form_params = opts[:form_params] || {}
201
+
202
+ # http body (model)
203
+ post_body = opts[:debug_body]
204
+
205
+ # return_type
206
+ return_type = opts[:debug_return_type] || 'WebhookListResponse'
207
+
208
+ # auth_names
209
+ auth_names = opts[:debug_auth_names] || ['ApiKeyAuth']
210
+
211
+ new_options = opts.merge(
212
+ :operation => :"WebhooksApi.list_webhooks_v1_webhooks_get",
213
+ :header_params => header_params,
214
+ :query_params => query_params,
215
+ :form_params => form_params,
216
+ :body => post_body,
217
+ :auth_names => auth_names,
218
+ :return_type => return_type
219
+ )
220
+
221
+ data, status_code, headers = @api_client.call_api(:GET, local_var_path, new_options)
222
+ if @api_client.config.debugging
223
+ @api_client.config.logger.debug "API called: WebhooksApi#list_webhooks_v1_webhooks_get\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
224
+ end
225
+ return data, status_code, headers
226
+ end
227
+
228
+ # Atualizar webhook
229
+ # Atualiza name/url/events/retry_enabled/active do webhook. Eventos validos: 10 alertas.
230
+ # @param webhook_id [String]
231
+ # @param update_webhook_request [UpdateWebhookRequest]
232
+ # @param [Hash] opts the optional parameters
233
+ # @return [MessageResponse]
234
+ def update_webhook_v1_webhooks_webhook_id_put(webhook_id, update_webhook_request, opts = {})
235
+ data, _status_code, _headers = update_webhook_v1_webhooks_webhook_id_put_with_http_info(webhook_id, update_webhook_request, opts)
236
+ data
237
+ end
238
+
239
+ # Atualizar webhook
240
+ # Atualiza name/url/events/retry_enabled/active do webhook. Eventos validos: 10 alertas.
241
+ # @param webhook_id [String]
242
+ # @param update_webhook_request [UpdateWebhookRequest]
243
+ # @param [Hash] opts the optional parameters
244
+ # @return [Array<(MessageResponse, Integer, Hash)>] MessageResponse data, response status code and response headers
245
+ def update_webhook_v1_webhooks_webhook_id_put_with_http_info(webhook_id, update_webhook_request, opts = {})
246
+ if @api_client.config.debugging
247
+ @api_client.config.logger.debug 'Calling API: WebhooksApi.update_webhook_v1_webhooks_webhook_id_put ...'
248
+ end
249
+ # verify the required parameter 'webhook_id' is set
250
+ if @api_client.config.client_side_validation && webhook_id.nil?
251
+ fail ArgumentError, "Missing the required parameter 'webhook_id' when calling WebhooksApi.update_webhook_v1_webhooks_webhook_id_put"
252
+ end
253
+ # verify the required parameter 'update_webhook_request' is set
254
+ if @api_client.config.client_side_validation && update_webhook_request.nil?
255
+ fail ArgumentError, "Missing the required parameter 'update_webhook_request' when calling WebhooksApi.update_webhook_v1_webhooks_webhook_id_put"
256
+ end
257
+ # resource path
258
+ local_var_path = '/v1/webhooks/{webhook_id}'.sub('{webhook_id}', CGI.escape(webhook_id.to_s))
259
+
260
+ # query parameters
261
+ query_params = opts[:query_params] || {}
262
+
263
+ # header parameters
264
+ header_params = opts[:header_params] || {}
265
+ # HTTP header 'Accept' (if needed)
266
+ header_params['Accept'] = @api_client.select_header_accept(['application/json']) unless header_params['Accept']
267
+ # HTTP header 'Content-Type'
268
+ content_type = @api_client.select_header_content_type(['application/json'])
269
+ if !content_type.nil?
270
+ header_params['Content-Type'] = content_type
271
+ end
272
+
273
+ # form parameters
274
+ form_params = opts[:form_params] || {}
275
+
276
+ # http body (model)
277
+ post_body = opts[:debug_body] || @api_client.object_to_http_body(update_webhook_request)
278
+
279
+ # return_type
280
+ return_type = opts[:debug_return_type] || 'MessageResponse'
281
+
282
+ # auth_names
283
+ auth_names = opts[:debug_auth_names] || ['ApiKeyAuth']
284
+
285
+ new_options = opts.merge(
286
+ :operation => :"WebhooksApi.update_webhook_v1_webhooks_webhook_id_put",
287
+ :header_params => header_params,
288
+ :query_params => query_params,
289
+ :form_params => form_params,
290
+ :body => post_body,
291
+ :auth_names => auth_names,
292
+ :return_type => return_type
293
+ )
294
+
295
+ data, status_code, headers = @api_client.call_api(:PUT, local_var_path, new_options)
296
+ if @api_client.config.debugging
297
+ @api_client.config.logger.debug "API called: WebhooksApi#update_webhook_v1_webhooks_webhook_id_put\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
298
+ end
299
+ return data, status_code, headers
300
+ end
301
+ end
302
+ end