carbon_ruby_sdk 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (228) hide show
  1. checksums.yaml +7 -0
  2. data/Gemfile +11 -0
  3. data/Gemfile.lock +89 -0
  4. data/README.md +2325 -0
  5. data/Rakefile +10 -0
  6. data/carbon_ruby_sdk.gemspec +39 -0
  7. data/header.png +0 -0
  8. data/lib/carbon_ruby_sdk/api/auth_api.rb +177 -0
  9. data/lib/carbon_ruby_sdk/api/data_sources_api.rb +217 -0
  10. data/lib/carbon_ruby_sdk/api/embeddings_api.rb +565 -0
  11. data/lib/carbon_ruby_sdk/api/files_api.rb +1526 -0
  12. data/lib/carbon_ruby_sdk/api/health_api.rb +92 -0
  13. data/lib/carbon_ruby_sdk/api/integrations_api.rb +2201 -0
  14. data/lib/carbon_ruby_sdk/api/organizations_api.rb +92 -0
  15. data/lib/carbon_ruby_sdk/api/users_api.rb +209 -0
  16. data/lib/carbon_ruby_sdk/api/utilities_api.rb +710 -0
  17. data/lib/carbon_ruby_sdk/api/webhooks_api.rb +296 -0
  18. data/lib/carbon_ruby_sdk/api_client.rb +436 -0
  19. data/lib/carbon_ruby_sdk/api_client_custom.rb +14 -0
  20. data/lib/carbon_ruby_sdk/api_error.rb +53 -0
  21. data/lib/carbon_ruby_sdk/configuration.rb +354 -0
  22. data/lib/carbon_ruby_sdk/models/add_webhook_props.rb +220 -0
  23. data/lib/carbon_ruby_sdk/models/body_create_upload_file_uploadfile_post.rb +220 -0
  24. data/lib/carbon_ruby_sdk/models/chunk_properties.rb +248 -0
  25. data/lib/carbon_ruby_sdk/models/chunk_properties_nullable.rb +248 -0
  26. data/lib/carbon_ruby_sdk/models/chunks_and_embeddings.rb +246 -0
  27. data/lib/carbon_ruby_sdk/models/chunks_and_embeddings_upload_input.rb +247 -0
  28. data/lib/carbon_ruby_sdk/models/data_source_last_sync_actions.rb +38 -0
  29. data/lib/carbon_ruby_sdk/models/data_source_sync_statuses.rb +38 -0
  30. data/lib/carbon_ruby_sdk/models/data_source_type.rb +76 -0
  31. data/lib/carbon_ruby_sdk/models/data_source_type_nullable.rb +76 -0
  32. data/lib/carbon_ruby_sdk/models/delete_files_query_input.rb +252 -0
  33. data/lib/carbon_ruby_sdk/models/directory_item.rb +266 -0
  34. data/lib/carbon_ruby_sdk/models/document_response.rb +328 -0
  35. data/lib/carbon_ruby_sdk/models/document_response_list.rb +222 -0
  36. data/lib/carbon_ruby_sdk/models/embedding_and_chunk.rb +256 -0
  37. data/lib/carbon_ruby_sdk/models/embedding_generators.rb +43 -0
  38. data/lib/carbon_ruby_sdk/models/embedding_generators_nullable.rb +43 -0
  39. data/lib/carbon_ruby_sdk/models/embedding_properties.rb +226 -0
  40. data/lib/carbon_ruby_sdk/models/embeddings_and_chunks_filters.rb +232 -0
  41. data/lib/carbon_ruby_sdk/models/embeddings_and_chunks_order_by_columns.rb +37 -0
  42. data/lib/carbon_ruby_sdk/models/embeddings_and_chunks_query_input.rb +262 -0
  43. data/lib/carbon_ruby_sdk/models/embeddings_and_chunks_response.rb +236 -0
  44. data/lib/carbon_ruby_sdk/models/external_file_sync_statuses.rb +43 -0
  45. data/lib/carbon_ruby_sdk/models/external_source_item.rb +420 -0
  46. data/lib/carbon_ruby_sdk/models/fetch_urls_response.rb +236 -0
  47. data/lib/carbon_ruby_sdk/models/file_content_types.rb +36 -0
  48. data/lib/carbon_ruby_sdk/models/file_content_types_nullable.rb +36 -0
  49. data/lib/carbon_ruby_sdk/models/file_formats.rb +76 -0
  50. data/lib/carbon_ruby_sdk/models/file_formats_nullable.rb +76 -0
  51. data/lib/carbon_ruby_sdk/models/file_statistics.rb +256 -0
  52. data/lib/carbon_ruby_sdk/models/file_statistics_nullable.rb +256 -0
  53. data/lib/carbon_ruby_sdk/models/fresh_desk_connect_request.rb +316 -0
  54. data/lib/carbon_ruby_sdk/models/generic_success_response.rb +220 -0
  55. data/lib/carbon_ruby_sdk/models/get_embedding_documents_body.rb +416 -0
  56. data/lib/carbon_ruby_sdk/models/gitbook_connect_request.rb +234 -0
  57. data/lib/carbon_ruby_sdk/models/gitbook_sync_request.rb +336 -0
  58. data/lib/carbon_ruby_sdk/models/gmail_sync_input.rb +301 -0
  59. data/lib/carbon_ruby_sdk/models/http_validation_error.rb +217 -0
  60. data/lib/carbon_ruby_sdk/models/hybrid_search_tuning_params.rb +234 -0
  61. data/lib/carbon_ruby_sdk/models/hybrid_search_tuning_params_nullable.rb +235 -0
  62. data/lib/carbon_ruby_sdk/models/list_data_source_items_request.rb +239 -0
  63. data/lib/carbon_ruby_sdk/models/list_data_source_items_response.rb +236 -0
  64. data/lib/carbon_ruby_sdk/models/list_request.rb +230 -0
  65. data/lib/carbon_ruby_sdk/models/list_response.rb +222 -0
  66. data/lib/carbon_ruby_sdk/models/location_property_inner.rb +226 -0
  67. data/lib/carbon_ruby_sdk/models/modify_user_configuration_input.rb +234 -0
  68. data/lib/carbon_ruby_sdk/models/o_auth_url_request.rb +362 -0
  69. data/lib/carbon_ruby_sdk/models/order_dir.rb +36 -0
  70. data/lib/carbon_ruby_sdk/models/organization_response.rb +362 -0
  71. data/lib/carbon_ruby_sdk/models/organization_user_data_source_api.rb +380 -0
  72. data/lib/carbon_ruby_sdk/models/organization_user_data_source_filters.rb +238 -0
  73. data/lib/carbon_ruby_sdk/models/organization_user_data_source_order_by_columns.rb +36 -0
  74. data/lib/carbon_ruby_sdk/models/organization_user_data_source_query_input.rb +246 -0
  75. data/lib/carbon_ruby_sdk/models/organization_user_data_source_response.rb +236 -0
  76. data/lib/carbon_ruby_sdk/models/organization_user_file_tag_create.rb +236 -0
  77. data/lib/carbon_ruby_sdk/models/organization_user_file_tags_remove.rb +236 -0
  78. data/lib/carbon_ruby_sdk/models/organization_user_files_to_sync_filters.rb +330 -0
  79. data/lib/carbon_ruby_sdk/models/organization_user_files_to_sync_order_by_types.rb +39 -0
  80. data/lib/carbon_ruby_sdk/models/organization_user_files_to_sync_query_input.rb +276 -0
  81. data/lib/carbon_ruby_sdk/models/outlook_sync_input.rb +313 -0
  82. data/lib/carbon_ruby_sdk/models/pagination.rb +228 -0
  83. data/lib/carbon_ruby_sdk/models/presigned_url_response.rb +220 -0
  84. data/lib/carbon_ruby_sdk/models/rank_property.rb +226 -0
  85. data/lib/carbon_ruby_sdk/models/raw_text_input.rb +295 -0
  86. data/lib/carbon_ruby_sdk/models/raw_transcript_property_inner_value.rb +226 -0
  87. data/lib/carbon_ruby_sdk/models/resync_file_query_input.rb +240 -0
  88. data/lib/carbon_ruby_sdk/models/revoke_access_token_input.rb +220 -0
  89. data/lib/carbon_ruby_sdk/models/rss_feed_input.rb +301 -0
  90. data/lib/carbon_ruby_sdk/models/s3_auth_request.rb +234 -0
  91. data/lib/carbon_ruby_sdk/models/s3_file_sync_input.rb +313 -0
  92. data/lib/carbon_ruby_sdk/models/s3_get_file_input.rb +226 -0
  93. data/lib/carbon_ruby_sdk/models/single_chunks_and_embeddings_upload_input.rb +256 -0
  94. data/lib/carbon_ruby_sdk/models/sitemap_scrape_request.rb +361 -0
  95. data/lib/carbon_ruby_sdk/models/source_property.rb +226 -0
  96. data/lib/carbon_ruby_sdk/models/sync_directory_request.rb +220 -0
  97. data/lib/carbon_ruby_sdk/models/sync_files_request.rb +328 -0
  98. data/lib/carbon_ruby_sdk/models/tags.rb +232 -0
  99. data/lib/carbon_ruby_sdk/models/tags1.rb +230 -0
  100. data/lib/carbon_ruby_sdk/models/text_embedding_generators.rb +42 -0
  101. data/lib/carbon_ruby_sdk/models/token_response.rb +234 -0
  102. data/lib/carbon_ruby_sdk/models/upload_file_from_url_input.rb +326 -0
  103. data/lib/carbon_ruby_sdk/models/user_file.rb +524 -0
  104. data/lib/carbon_ruby_sdk/models/user_files_v2.rb +236 -0
  105. data/lib/carbon_ruby_sdk/models/user_request_content.rb +220 -0
  106. data/lib/carbon_ruby_sdk/models/user_response.rb +354 -0
  107. data/lib/carbon_ruby_sdk/models/validation_error.rb +250 -0
  108. data/lib/carbon_ruby_sdk/models/webhook.rb +290 -0
  109. data/lib/carbon_ruby_sdk/models/webhook_filters.rb +218 -0
  110. data/lib/carbon_ruby_sdk/models/webhook_no_key.rb +276 -0
  111. data/lib/carbon_ruby_sdk/models/webhook_order_by_columns.rb +36 -0
  112. data/lib/carbon_ruby_sdk/models/webhook_query_input.rb +246 -0
  113. data/lib/carbon_ruby_sdk/models/webhook_query_response.rb +236 -0
  114. data/lib/carbon_ruby_sdk/models/webscrape_request.rb +375 -0
  115. data/lib/carbon_ruby_sdk/models/white_labeling_response.rb +234 -0
  116. data/lib/carbon_ruby_sdk/models/youtube_transcript_response.rb +252 -0
  117. data/lib/carbon_ruby_sdk/version.rb +11 -0
  118. data/lib/carbon_ruby_sdk.rb +207 -0
  119. data/spec/api/auth_api_spec.rb +50 -0
  120. data/spec/api/data_sources_api_spec.rb +51 -0
  121. data/spec/api/embeddings_api_spec.rb +63 -0
  122. data/spec/api/files_api_spec.rb +178 -0
  123. data/spec/api/health_api_spec.rb +39 -0
  124. data/spec/api/integrations_api_spec.rb +226 -0
  125. data/spec/api/organizations_api_spec.rb +39 -0
  126. data/spec/api/users_api_spec.rb +51 -0
  127. data/spec/api/utilities_api_spec.rb +102 -0
  128. data/spec/api/webhooks_api_spec.rb +62 -0
  129. data/spec/api_client_spec.rb +191 -0
  130. data/spec/configuration_spec.rb +38 -0
  131. data/spec/getting_started_spec.rb +196 -0
  132. data/spec/models/add_webhook_props_spec.rb +28 -0
  133. data/spec/models/body_create_upload_file_uploadfile_post_spec.rb +28 -0
  134. data/spec/models/chunk_properties_nullable_spec.rb +40 -0
  135. data/spec/models/chunk_properties_spec.rb +40 -0
  136. data/spec/models/chunks_and_embeddings_spec.rb +40 -0
  137. data/spec/models/chunks_and_embeddings_upload_input_spec.rb +40 -0
  138. data/spec/models/data_source_last_sync_actions_spec.rb +22 -0
  139. data/spec/models/data_source_sync_statuses_spec.rb +22 -0
  140. data/spec/models/data_source_type_nullable_spec.rb +22 -0
  141. data/spec/models/data_source_type_spec.rb +22 -0
  142. data/spec/models/delete_files_query_input_spec.rb +46 -0
  143. data/spec/models/directory_item_spec.rb +46 -0
  144. data/spec/models/document_response_list_spec.rb +28 -0
  145. data/spec/models/document_response_spec.rb +88 -0
  146. data/spec/models/embedding_and_chunk_spec.rb +46 -0
  147. data/spec/models/embedding_generators_nullable_spec.rb +22 -0
  148. data/spec/models/embedding_generators_spec.rb +22 -0
  149. data/spec/models/embedding_properties_spec.rb +34 -0
  150. data/spec/models/embeddings_and_chunks_filters_spec.rb +34 -0
  151. data/spec/models/embeddings_and_chunks_order_by_columns_spec.rb +22 -0
  152. data/spec/models/embeddings_and_chunks_query_input_spec.rb +52 -0
  153. data/spec/models/embeddings_and_chunks_response_spec.rb +34 -0
  154. data/spec/models/external_file_sync_statuses_spec.rb +22 -0
  155. data/spec/models/external_source_item_spec.rb +124 -0
  156. data/spec/models/fetch_urls_response_spec.rb +34 -0
  157. data/spec/models/file_content_types_nullable_spec.rb +22 -0
  158. data/spec/models/file_content_types_spec.rb +22 -0
  159. data/spec/models/file_formats_nullable_spec.rb +22 -0
  160. data/spec/models/file_formats_spec.rb +22 -0
  161. data/spec/models/file_statistics_nullable_spec.rb +52 -0
  162. data/spec/models/file_statistics_spec.rb +52 -0
  163. data/spec/models/fresh_desk_connect_request_spec.rb +76 -0
  164. data/spec/models/generic_success_response_spec.rb +28 -0
  165. data/spec/models/get_embedding_documents_body_spec.rb +106 -0
  166. data/spec/models/gitbook_connect_request_spec.rb +34 -0
  167. data/spec/models/gitbook_sync_request_spec.rb +76 -0
  168. data/spec/models/gmail_sync_input_spec.rb +70 -0
  169. data/spec/models/http_validation_error_spec.rb +28 -0
  170. data/spec/models/hybrid_search_tuning_params_nullable_spec.rb +34 -0
  171. data/spec/models/hybrid_search_tuning_params_spec.rb +34 -0
  172. data/spec/models/list_data_source_items_request_spec.rb +40 -0
  173. data/spec/models/list_data_source_items_response_spec.rb +34 -0
  174. data/spec/models/list_request_spec.rb +34 -0
  175. data/spec/models/list_response_spec.rb +28 -0
  176. data/spec/models/location_property_inner_spec.rb +22 -0
  177. data/spec/models/modify_user_configuration_input_spec.rb +34 -0
  178. data/spec/models/o_auth_url_request_spec.rb +106 -0
  179. data/spec/models/order_dir_spec.rb +22 -0
  180. data/spec/models/organization_response_spec.rb +94 -0
  181. data/spec/models/organization_user_data_source_api_spec.rb +100 -0
  182. data/spec/models/organization_user_data_source_filters_spec.rb +40 -0
  183. data/spec/models/organization_user_data_source_order_by_columns_spec.rb +22 -0
  184. data/spec/models/organization_user_data_source_query_input_spec.rb +46 -0
  185. data/spec/models/organization_user_data_source_response_spec.rb +34 -0
  186. data/spec/models/organization_user_file_tag_create_spec.rb +34 -0
  187. data/spec/models/organization_user_file_tags_remove_spec.rb +34 -0
  188. data/spec/models/organization_user_files_to_sync_filters_spec.rb +88 -0
  189. data/spec/models/organization_user_files_to_sync_order_by_types_spec.rb +22 -0
  190. data/spec/models/organization_user_files_to_sync_query_input_spec.rb +64 -0
  191. data/spec/models/outlook_sync_input_spec.rb +76 -0
  192. data/spec/models/pagination_spec.rb +34 -0
  193. data/spec/models/presigned_url_response_spec.rb +28 -0
  194. data/spec/models/rank_property_spec.rb +22 -0
  195. data/spec/models/raw_text_input_spec.rb +70 -0
  196. data/spec/models/raw_transcript_property_inner_value_spec.rb +22 -0
  197. data/spec/models/resync_file_query_input_spec.rb +40 -0
  198. data/spec/models/revoke_access_token_input_spec.rb +28 -0
  199. data/spec/models/rss_feed_input_spec.rb +70 -0
  200. data/spec/models/s3_auth_request_spec.rb +34 -0
  201. data/spec/models/s3_file_sync_input_spec.rb +76 -0
  202. data/spec/models/s3_get_file_input_spec.rb +34 -0
  203. data/spec/models/single_chunks_and_embeddings_upload_input_spec.rb +46 -0
  204. data/spec/models/sitemap_scrape_request_spec.rb +100 -0
  205. data/spec/models/source_property_spec.rb +22 -0
  206. data/spec/models/sync_directory_request_spec.rb +28 -0
  207. data/spec/models/sync_files_request_spec.rb +82 -0
  208. data/spec/models/tags1_spec.rb +22 -0
  209. data/spec/models/tags_spec.rb +22 -0
  210. data/spec/models/text_embedding_generators_spec.rb +22 -0
  211. data/spec/models/token_response_spec.rb +34 -0
  212. data/spec/models/upload_file_from_url_input_spec.rb +88 -0
  213. data/spec/models/user_file_spec.rb +190 -0
  214. data/spec/models/user_files_v2_spec.rb +34 -0
  215. data/spec/models/user_request_content_spec.rb +28 -0
  216. data/spec/models/user_response_spec.rb +88 -0
  217. data/spec/models/validation_error_spec.rb +40 -0
  218. data/spec/models/webhook_filters_spec.rb +28 -0
  219. data/spec/models/webhook_no_key_spec.rb +52 -0
  220. data/spec/models/webhook_order_by_columns_spec.rb +22 -0
  221. data/spec/models/webhook_query_input_spec.rb +46 -0
  222. data/spec/models/webhook_query_response_spec.rb +34 -0
  223. data/spec/models/webhook_spec.rb +58 -0
  224. data/spec/models/webscrape_request_spec.rb +106 -0
  225. data/spec/models/white_labeling_response_spec.rb +34 -0
  226. data/spec/models/youtube_transcript_response_spec.rb +46 -0
  227. data/spec/spec_helper.rb +107 -0
  228. metadata +440 -0
data/README.md ADDED
@@ -0,0 +1,2325 @@
1
+ <div align="center">
2
+
3
+ [![Visit Carbon](./header.png)](https://carbon.ai)
4
+
5
+ # [Carbon](https://carbon.ai)<a id="carbon"></a>
6
+
7
+ Connect external data to LLMs, no matter the source.
8
+
9
+ [![npm](https://img.shields.io/badge/gem-v0.1.0-blue)](https://rubygems.org/gems/carbon_ruby_sdk/versions/0.1.0)
10
+
11
+ </div>
12
+
13
+ ## Table of Contents<a id="table-of-contents"></a>
14
+
15
+ <!-- toc -->
16
+
17
+ - [Installation](#installation)
18
+ - [Getting Started](#getting-started)
19
+ - [Raw HTTP Response](#raw-http-response)
20
+ - [Reference](#reference)
21
+ * [`carbon.auth.get_access_token`](#carbonauthget_access_token)
22
+ * [`carbon.auth.get_white_labeling`](#carbonauthget_white_labeling)
23
+ * [`carbon.data_sources.query_user_data_sources`](#carbondata_sourcesquery_user_data_sources)
24
+ * [`carbon.data_sources.revoke_access_token`](#carbondata_sourcesrevoke_access_token)
25
+ * [`carbon.embeddings.get_documents`](#carbonembeddingsget_documents)
26
+ * [`carbon.embeddings.get_embeddings_and_chunks`](#carbonembeddingsget_embeddings_and_chunks)
27
+ * [`carbon.embeddings.upload_chunks_and_embeddings`](#carbonembeddingsupload_chunks_and_embeddings)
28
+ * [`carbon.files.create_user_file_tags`](#carbonfilescreate_user_file_tags)
29
+ * [`carbon.files.delete`](#carbonfilesdelete)
30
+ * [`carbon.files.delete_file_tags`](#carbonfilesdelete_file_tags)
31
+ * [`carbon.files.delete_many`](#carbonfilesdelete_many)
32
+ * [`carbon.files.get_parsed_file`](#carbonfilesget_parsed_file)
33
+ * [`carbon.files.get_raw_file`](#carbonfilesget_raw_file)
34
+ * [`carbon.files.query_user_files`](#carbonfilesquery_user_files)
35
+ * [`carbon.files.query_user_files_deprecated`](#carbonfilesquery_user_files_deprecated)
36
+ * [`carbon.files.resync`](#carbonfilesresync)
37
+ * [`carbon.files.upload`](#carbonfilesupload)
38
+ * [`carbon.files.upload_from_url`](#carbonfilesupload_from_url)
39
+ * [`carbon.files.upload_text`](#carbonfilesupload_text)
40
+ * [`carbon.health.check`](#carbonhealthcheck)
41
+ * [`carbon.integrations.connect_freshdesk`](#carbonintegrationsconnect_freshdesk)
42
+ * [`carbon.integrations.connect_gitbook`](#carbonintegrationsconnect_gitbook)
43
+ * [`carbon.integrations.create_aws_iam_user`](#carbonintegrationscreate_aws_iam_user)
44
+ * [`carbon.integrations.get_oauth_url`](#carbonintegrationsget_oauth_url)
45
+ * [`carbon.integrations.list_confluence_pages`](#carbonintegrationslist_confluence_pages)
46
+ * [`carbon.integrations.list_data_source_items`](#carbonintegrationslist_data_source_items)
47
+ * [`carbon.integrations.list_folders`](#carbonintegrationslist_folders)
48
+ * [`carbon.integrations.list_gitbook_spaces`](#carbonintegrationslist_gitbook_spaces)
49
+ * [`carbon.integrations.list_labels`](#carbonintegrationslist_labels)
50
+ * [`carbon.integrations.sync_confluence`](#carbonintegrationssync_confluence)
51
+ * [`carbon.integrations.sync_data_source_items`](#carbonintegrationssync_data_source_items)
52
+ * [`carbon.integrations.sync_files`](#carbonintegrationssync_files)
53
+ * [`carbon.integrations.sync_gitbook`](#carbonintegrationssync_gitbook)
54
+ * [`carbon.integrations.sync_gmail`](#carbonintegrationssync_gmail)
55
+ * [`carbon.integrations.sync_outlook`](#carbonintegrationssync_outlook)
56
+ * [`carbon.integrations.sync_rss_feed`](#carbonintegrationssync_rss_feed)
57
+ * [`carbon.integrations.sync_s3_files`](#carbonintegrationssync_s3_files)
58
+ * [`carbon.organizations.get`](#carbonorganizationsget)
59
+ * [`carbon.users.get`](#carbonusersget)
60
+ * [`carbon.users.toggle_user_features`](#carbonuserstoggle_user_features)
61
+ * [`carbon.utilities.fetch_urls`](#carbonutilitiesfetch_urls)
62
+ * [`carbon.utilities.fetch_youtube_transcripts`](#carbonutilitiesfetch_youtube_transcripts)
63
+ * [`carbon.utilities.process_sitemap`](#carbonutilitiesprocess_sitemap)
64
+ * [`carbon.utilities.scrape_sitemap`](#carbonutilitiesscrape_sitemap)
65
+ * [`carbon.utilities.scrape_web`](#carbonutilitiesscrape_web)
66
+ * [`carbon.utilities.search_urls`](#carbonutilitiessearch_urls)
67
+ * [`carbon.webhooks.add_url`](#carbonwebhooksadd_url)
68
+ * [`carbon.webhooks.delete_url`](#carbonwebhooksdelete_url)
69
+ * [`carbon.webhooks.urls`](#carbonwebhooksurls)
70
+
71
+ <!-- tocstop -->
72
+
73
+ ## Installation<a id="installation"></a>
74
+
75
+ Add to Gemfile:
76
+
77
+ ```ruby
78
+ gem 'carbon_ruby_sdk', '~> 0.1.0'
79
+ ```
80
+
81
+ ## Getting Started<a id="getting-started"></a>
82
+
83
+ ```ruby
84
+ require 'carbon_ruby_sdk'
85
+
86
+ # 1) Get an access token for a customer
87
+ configuration = Carbon::Configuration.new
88
+ configuration.api_key = "YOUR_API_KEY"
89
+ configuration.customer_id = "YOUR_CUSTOMER_ID"
90
+ carbon = Carbon::Client.new(configuration)
91
+
92
+ token = carbon.auth.get_access_token
93
+
94
+ # 2) Use the access token to authenticate moving forward
95
+ configuration = Carbon::Configuration.new
96
+ configuration.access_token = token.access_token
97
+ carbon = Carbon::Client.new(configuration)
98
+
99
+ # use SDK as usual
100
+ white_labeling = carbon.auth.get_white_labeling
101
+ ```
102
+
103
+ ## Raw HTTP Response<a id="raw-http-response"></a>
104
+
105
+ To access the raw HTTP response, suffix any method with `_with_http_info`.
106
+
107
+ ```ruby
108
+ result = carbon.auth.get_access_token_with_http_info
109
+ p result.data # [TokenResponse] Deserialized data
110
+ p.result.status_code # [Integer] HTTP status code
111
+ p.result.headers # [Hash] HTTP headers
112
+ p.result.response # [Faraday::Response] Raw HTTP response
113
+ ```
114
+
115
+ ## Reference<a id="reference"></a>
116
+
117
+
118
+ ### `carbon.auth.get_access_token`<a id="carbonauthget_access_token"></a>
119
+
120
+ Get Access Token
121
+
122
+ #### πŸ› οΈ Usage<a id="πŸ› οΈ-usage"></a>
123
+
124
+ ```ruby
125
+ result = carbon.auth.get_access_token
126
+ p result
127
+ ```
128
+
129
+ #### πŸ”„ Return<a id="πŸ”„-return"></a>
130
+
131
+ [TokenResponse](./lib/carbon_ruby_sdk/models/token_response.rb)
132
+
133
+ #### 🌐 Endpoint<a id="🌐-endpoint"></a>
134
+
135
+ `/auth/v1/access_token` `GET`
136
+
137
+ [πŸ”™ **Back to Table of Contents**](#table-of-contents)
138
+
139
+ ---
140
+
141
+
142
+ ### `carbon.auth.get_white_labeling`<a id="carbonauthget_white_labeling"></a>
143
+
144
+ Returns whether or not the organization is white labeled and which integrations are white labeled
145
+
146
+ :param current_user: the current user
147
+ :param db: the database session
148
+ :return: a WhiteLabelingResponse
149
+
150
+ #### πŸ› οΈ Usage<a id="πŸ› οΈ-usage"></a>
151
+
152
+ ```ruby
153
+ result = carbon.auth.get_white_labeling
154
+ p result
155
+ ```
156
+
157
+ #### πŸ”„ Return<a id="πŸ”„-return"></a>
158
+
159
+ [WhiteLabelingResponse](./lib/carbon_ruby_sdk/models/white_labeling_response.rb)
160
+
161
+ #### 🌐 Endpoint<a id="🌐-endpoint"></a>
162
+
163
+ `/auth/v1/white_labeling` `GET`
164
+
165
+ [πŸ”™ **Back to Table of Contents**](#table-of-contents)
166
+
167
+ ---
168
+
169
+
170
+ ### `carbon.data_sources.query_user_data_sources`<a id="carbondata_sourcesquery_user_data_sources"></a>
171
+
172
+ User Data Sources
173
+
174
+ #### πŸ› οΈ Usage<a id="πŸ› οΈ-usage"></a>
175
+
176
+ ```ruby
177
+ result = carbon.data_sources.query_user_data_sources(
178
+ pagination: {
179
+ "limit" => 10,
180
+ "offset" => 0,
181
+ },
182
+ order_by: "created_at",
183
+ order_dir: "desc",
184
+ filters: {
185
+ "source" => "GOOGLE_DRIVE",
186
+ },
187
+ )
188
+ p result
189
+ ```
190
+
191
+ #### βš™οΈ Parameters<a id="βš™οΈ-parameters"></a>
192
+
193
+ ##### pagination: [`Pagination`](./lib/carbon_ruby_sdk/models/pagination.rb)<a id="pagination-paginationlibcarbon_ruby_sdkmodelspaginationrb"></a>
194
+ ##### order_by: [`OrganizationUserDataSourceOrderByColumns`](./lib/carbon_ruby_sdk/models/organization_user_data_source_order_by_columns.rb)<a id="order_by-organizationuserdatasourceorderbycolumnslibcarbon_ruby_sdkmodelsorganization_user_data_source_order_by_columnsrb"></a>
195
+ ##### order_dir: [`OrderDir`](./lib/carbon_ruby_sdk/models/order_dir.rb)<a id="order_dir-orderdirlibcarbon_ruby_sdkmodelsorder_dirrb"></a>
196
+ ##### filters: [`OrganizationUserDataSourceFilters`](./lib/carbon_ruby_sdk/models/organization_user_data_source_filters.rb)<a id="filters-organizationuserdatasourcefilterslibcarbon_ruby_sdkmodelsorganization_user_data_source_filtersrb"></a>
197
+ #### πŸ”„ Return<a id="πŸ”„-return"></a>
198
+
199
+ [OrganizationUserDataSourceResponse](./lib/carbon_ruby_sdk/models/organization_user_data_source_response.rb)
200
+
201
+ #### 🌐 Endpoint<a id="🌐-endpoint"></a>
202
+
203
+ `/user_data_sources` `POST`
204
+
205
+ [πŸ”™ **Back to Table of Contents**](#table-of-contents)
206
+
207
+ ---
208
+
209
+
210
+ ### `carbon.data_sources.revoke_access_token`<a id="carbondata_sourcesrevoke_access_token"></a>
211
+
212
+ Revoke Access Token
213
+
214
+ #### πŸ› οΈ Usage<a id="πŸ› οΈ-usage"></a>
215
+
216
+ ```ruby
217
+ result = carbon.data_sources.revoke_access_token(
218
+ data_source_id: 1,
219
+ )
220
+ p result
221
+ ```
222
+
223
+ #### βš™οΈ Parameters<a id="βš™οΈ-parameters"></a>
224
+
225
+ ##### data_source_id: `Integer`<a id="data_source_id-integer"></a>
226
+ #### πŸ”„ Return<a id="πŸ”„-return"></a>
227
+
228
+ [GenericSuccessResponse](./lib/carbon_ruby_sdk/models/generic_success_response.rb)
229
+
230
+ #### 🌐 Endpoint<a id="🌐-endpoint"></a>
231
+
232
+ `/revoke_access_token` `POST`
233
+
234
+ [πŸ”™ **Back to Table of Contents**](#table-of-contents)
235
+
236
+ ---
237
+
238
+
239
+ ### `carbon.embeddings.get_documents`<a id="carbonembeddingsget_documents"></a>
240
+
241
+ For pre-filtering documents, using `tags_v2` is preferred to using `tags` (which is now deprecated). If both `tags_v2`
242
+ and `tags` are specified, `tags` is ignored. `tags_v2` enables
243
+ building complex filters through the use of "AND", "OR", and negation logic. Take the below input as an example:
244
+ ```json
245
+ {
246
+ "OR": [
247
+ {
248
+ "key": "subject",
249
+ "value": "holy-bible",
250
+ "negate": false
251
+ },
252
+ {
253
+ "key": "person-of-interest",
254
+ "value": "jesus christ",
255
+ "negate": false
256
+ },
257
+ {
258
+ "key": "genre",
259
+ "value": "religion",
260
+ "negate": true
261
+ }
262
+ {
263
+ "AND": [
264
+ {
265
+ "key": "subject",
266
+ "value": "tao-te-ching",
267
+ "negate": false
268
+ },
269
+ {
270
+ "key": "author",
271
+ "value": "lao-tzu",
272
+ "negate": false
273
+ }
274
+ ]
275
+ }
276
+ ]
277
+ }
278
+ ```
279
+ In this case, files will be filtered such that:
280
+ 1. "subject" = "holy-bible" OR
281
+ 2. "person-of-interest" = "jesus christ" OR
282
+ 3. "genre" != "religion" OR
283
+ 4. "subject" = "tao-te-ching" AND "author" = "lao-tzu"
284
+
285
+ Note that the top level of the query must be either an "OR" or "AND" array. Currently, nesting is limited to 3.
286
+ For tag blocks (those with "key", "value", and "negate" keys), the following typing rules apply:
287
+ 1. "key" isn't optional and must be a `string`
288
+ 2. "value" isn't optional and can be `any` or list[`any`]
289
+ 3. "negate" is optional and must be `true` or `false`. If present and `true`, then the filter block is negated in
290
+ the resulting query. It is `false` by default.
291
+
292
+
293
+ When querying embeddings, you can optionally specify the `media_type` parameter in your request. By default (if
294
+ not set), it is equal to "TEXT". This means that the query will be performed over files that have
295
+ been parsed as text (for now, this covers all files except image files). If it is equal to "IMAGE",
296
+ the query will be performed over image files (for now, `.jpg` and `.png` files). You can think of this
297
+ field as an additional filter on top of any filters set in `file_ids` and
298
+
299
+
300
+ When `hybrid_search` is set to true, a combination of keyword search and semantic search are used to rank
301
+ and select candidate embeddings during information retrieval. By default, these search methods are weighted
302
+ equally during the ranking process. To adjust the weight (or "importance") of each search method, you can use
303
+ the `hybrid_search_tuning_parameters` property. The description for the different tuning parameters are:
304
+ - `weight_a`: weight to assign to semantic search
305
+ - `weight_b`: weight to assign to keyword search
306
+
307
+ You must ensure that `sum(weight_a, weight_b,..., weight_n)` for all *n* weights is equal to 1. The equality
308
+ has an error tolerance of 0.001 to account for possible floating point issues.
309
+
310
+ In order to use hybrid search for a customer across a set of documents, two flags need to be enabled:
311
+ 1. Use the `/modify_user_configuration` endpoint to to enable `sparse_vectors` for the customer. The payload
312
+ body for this request is below:
313
+ ```
314
+ {
315
+ "configuration_key_name": "sparse_vectors",
316
+ "value": {
317
+ "enabled": true
318
+ }
319
+ }
320
+ ```
321
+ 2. Make sure hybrid search is enabled for the documents across which you want to perform the search. For the
322
+ `/uploadfile` endpoint, this can be done by setting the following query parameter: `generate_sparse_vectors=true`
323
+
324
+
325
+ Carbon supports multiple models for use in generating embeddings for files. For images, we support Vertex AI's
326
+ multimodal model; for text, we support OpenAI's `text-embedding-ada-002` and Cohere's embed-multilingual-v3.0.
327
+ The model can be specified via the `embedding_model` parameter (in the POST body for `/embeddings`, and a query
328
+ parameter in `/uploadfile`). If no model is supplied, the `text-embedding-ada-002` is used by default. When performing
329
+ embedding queries, embeddings from files that used the specified model will be considered in the query.
330
+ For example, if files A and B have embeddings generated with `OPENAI`, and files C and D have embeddings generated with
331
+ `COHERE_MULTILINGUAL_V3`, then by default, queries will only consider files A and B. If `COHERE_MULTILINGUAL_V3` is
332
+ specified as the `embedding_model` in `/embeddings`, then only files C and D will be considered. Make sure that
333
+ the set of all files you want considered for a query have embeddings generated via the same model. For now, **do not**
334
+ set `VERTEX_MULTIMODAL` as an `embedding_model`. This model is used automatically by Carbon when it detects an image file.
335
+
336
+ #### πŸ› οΈ Usage<a id="πŸ› οΈ-usage"></a>
337
+
338
+ ```ruby
339
+ result = carbon.embeddings.get_documents(
340
+ query: "a",
341
+ k: 1,
342
+ tags: {
343
+ "key": "string_example",
344
+ },
345
+ query_vector: [
346
+ 3.14
347
+ ],
348
+ file_ids: [
349
+ 1
350
+ ],
351
+ parent_file_ids: [
352
+ 1
353
+ ],
354
+ tags_v2: {
355
+ },
356
+ include_tags: true,
357
+ include_vectors: true,
358
+ include_raw_file: true,
359
+ hybrid_search: true,
360
+ hybrid_search_tuning_parameters: {
361
+ "weight_a" => 0.5,
362
+ "weight_b" => 0.5,
363
+ },
364
+ media_type: "TEXT",
365
+ embedding_model: "OPENAI",
366
+ )
367
+ p result
368
+ ```
369
+
370
+ #### βš™οΈ Parameters<a id="βš™οΈ-parameters"></a>
371
+
372
+ ##### query: `String`<a id="query-string"></a>
373
+ Query for which to get related chunks and embeddings.
374
+
375
+ ##### k: `Integer`<a id="k-integer"></a>
376
+ Number of related chunks to return.
377
+
378
+ ##### tags: Hash<string, [`Tags1`](./lib/carbon_ruby_sdk/models/tags1.rb)><a id="tags-hash"></a>
379
+ A set of tags to limit the search to. Deprecated and may be removed in the
380
+ future.
381
+
382
+ ##### query_vector: Array<`Float`><a id="query_vector-array"></a>
383
+ Optional query vector for which to get related chunks and embeddings. It must
384
+ have been generated by the same model used to generate the embeddings across
385
+ which the search is being conducted. Cannot provide both `query` and
386
+ `query_vector`.
387
+
388
+ ##### file_ids: Array<`Integer`><a id="file_ids-array"></a>
389
+ Optional list of file IDs to limit the search to
390
+
391
+ ##### parent_file_ids: Array<`Integer`><a id="parent_file_ids-array"></a>
392
+ Optional list of parent file IDs to limit the search to. A parent file describes
393
+ a file to which another file belongs (e.g. a folder)
394
+
395
+ ##### tags_v2: `Object`<a id="tags_v2-object"></a>
396
+ A set of tags to limit the search to. Use this instead of `tags`, which is
397
+ deprecated.
398
+
399
+ ##### include_tags: `Boolean`<a id="include_tags-boolean"></a>
400
+ Flag to control whether or not to include tags for each chunk in the response.
401
+
402
+ ##### include_vectors: `Boolean`<a id="include_vectors-boolean"></a>
403
+ Flag to control whether or not to include embedding vectors in the response.
404
+
405
+ ##### include_raw_file: `Boolean`<a id="include_raw_file-boolean"></a>
406
+ Flag to control whether or not to include a signed URL to the raw file
407
+ containing each chunk in the response.
408
+
409
+ ##### hybrid_search: `Boolean`<a id="hybrid_search-boolean"></a>
410
+ Flag to control whether or not to perform hybrid search.
411
+
412
+ ##### hybrid_search_tuning_parameters: [`HybridSearchTuningParamsNullable`](./lib/carbon_ruby_sdk/models/hybrid_search_tuning_params_nullable.rb)<a id="hybrid_search_tuning_parameters-hybridsearchtuningparamsnullablelibcarbon_ruby_sdkmodelshybrid_search_tuning_params_nullablerb"></a>
413
+ ##### media_type: [`FileContentTypesNullable`](./lib/carbon_ruby_sdk/models/file_content_types_nullable.rb)<a id="media_type-filecontenttypesnullablelibcarbon_ruby_sdkmodelsfile_content_types_nullablerb"></a>
414
+ Used to filter the kind of files (e.g. `TEXT` or `IMAGE`) over which to perform
415
+ the search. Also plays a role in determining what embedding model is used to
416
+ embed the query. If `IMAGE` is chosen as the media type, then the embedding
417
+ model used will be an embedding model that is not text-only, *regardless* of
418
+ what value is passed for `embedding_model`.
419
+
420
+ ##### embedding_model: [`EmbeddingGeneratorsNullable`](./lib/carbon_ruby_sdk/models/embedding_generators_nullable.rb)<a id="embedding_model-embeddinggeneratorsnullablelibcarbon_ruby_sdkmodelsembedding_generators_nullablerb"></a>
421
+ #### πŸ”„ Return<a id="πŸ”„-return"></a>
422
+
423
+ [DocumentResponseList](./lib/carbon_ruby_sdk/models/document_response_list.rb)
424
+
425
+ #### 🌐 Endpoint<a id="🌐-endpoint"></a>
426
+
427
+ `/embeddings` `POST`
428
+
429
+ [πŸ”™ **Back to Table of Contents**](#table-of-contents)
430
+
431
+ ---
432
+
433
+
434
+ ### `carbon.embeddings.get_embeddings_and_chunks`<a id="carbonembeddingsget_embeddings_and_chunks"></a>
435
+
436
+ Retrieve Embeddings And Content
437
+
438
+ #### πŸ› οΈ Usage<a id="πŸ› οΈ-usage"></a>
439
+
440
+ ```ruby
441
+ result = carbon.embeddings.get_embeddings_and_chunks(
442
+ filters: {
443
+ "user_file_id" => 1,
444
+ "embedding_model" => "OPENAI",
445
+ },
446
+ pagination: {
447
+ "limit" => 10,
448
+ "offset" => 0,
449
+ },
450
+ order_by: "created_at",
451
+ order_dir: "desc",
452
+ include_vectors: false,
453
+ )
454
+ p result
455
+ ```
456
+
457
+ #### βš™οΈ Parameters<a id="βš™οΈ-parameters"></a>
458
+
459
+ ##### filters: [`EmbeddingsAndChunksFilters`](./lib/carbon_ruby_sdk/models/embeddings_and_chunks_filters.rb)<a id="filters-embeddingsandchunksfilterslibcarbon_ruby_sdkmodelsembeddings_and_chunks_filtersrb"></a>
460
+ ##### pagination: [`Pagination`](./lib/carbon_ruby_sdk/models/pagination.rb)<a id="pagination-paginationlibcarbon_ruby_sdkmodelspaginationrb"></a>
461
+ ##### order_by: [`EmbeddingsAndChunksOrderByColumns`](./lib/carbon_ruby_sdk/models/embeddings_and_chunks_order_by_columns.rb)<a id="order_by-embeddingsandchunksorderbycolumnslibcarbon_ruby_sdkmodelsembeddings_and_chunks_order_by_columnsrb"></a>
462
+ ##### order_dir: [`OrderDir`](./lib/carbon_ruby_sdk/models/order_dir.rb)<a id="order_dir-orderdirlibcarbon_ruby_sdkmodelsorder_dirrb"></a>
463
+ ##### include_vectors: `Boolean`<a id="include_vectors-boolean"></a>
464
+ #### πŸ”„ Return<a id="πŸ”„-return"></a>
465
+
466
+ [EmbeddingsAndChunksResponse](./lib/carbon_ruby_sdk/models/embeddings_and_chunks_response.rb)
467
+
468
+ #### 🌐 Endpoint<a id="🌐-endpoint"></a>
469
+
470
+ `/text_chunks` `POST`
471
+
472
+ [πŸ”™ **Back to Table of Contents**](#table-of-contents)
473
+
474
+ ---
475
+
476
+
477
+ ### `carbon.embeddings.upload_chunks_and_embeddings`<a id="carbonembeddingsupload_chunks_and_embeddings"></a>
478
+
479
+ Upload Chunks And Embeddings
480
+
481
+ #### πŸ› οΈ Usage<a id="πŸ› οΈ-usage"></a>
482
+
483
+ ```ruby
484
+ result = carbon.embeddings.upload_chunks_and_embeddings(
485
+ embedding_model: "OPENAI",
486
+ chunks_and_embeddings: [
487
+ {
488
+ "file_id" => 1,
489
+ "chunks_and_embeddings" => [
490
+ {
491
+ "chunk_number" => 1,
492
+ "chunk" => "chunk_example",
493
+ "embedding" => [
494
+ 3.14
495
+ ],
496
+ }
497
+ ],
498
+ }
499
+ ],
500
+ overwrite_existing: false,
501
+ )
502
+ p result
503
+ ```
504
+
505
+ #### βš™οΈ Parameters<a id="βš™οΈ-parameters"></a>
506
+
507
+ ##### embedding_model: [`EmbeddingGenerators`](./lib/carbon_ruby_sdk/models/embedding_generators.rb)<a id="embedding_model-embeddinggeneratorslibcarbon_ruby_sdkmodelsembedding_generatorsrb"></a>
508
+ ##### chunks_and_embeddings: Array<[`SingleChunksAndEmbeddingsUploadInput`](./lib/carbon_ruby_sdk/models/single_chunks_and_embeddings_upload_input.rb)><a id="chunks_and_embeddings-array"></a>
509
+ ##### overwrite_existing: `Boolean`<a id="overwrite_existing-boolean"></a>
510
+ #### πŸ”„ Return<a id="πŸ”„-return"></a>
511
+
512
+ [GenericSuccessResponse](./lib/carbon_ruby_sdk/models/generic_success_response.rb)
513
+
514
+ #### 🌐 Endpoint<a id="🌐-endpoint"></a>
515
+
516
+ `/upload_chunks_and_embeddings` `POST`
517
+
518
+ [πŸ”™ **Back to Table of Contents**](#table-of-contents)
519
+
520
+ ---
521
+
522
+
523
+ ### `carbon.files.create_user_file_tags`<a id="carbonfilescreate_user_file_tags"></a>
524
+
525
+ A tag is a key-value pair that can be added to a file. This pair can then be used
526
+ for searches (e.g. embedding searches) in order to narrow down the scope of the search.
527
+ A file can have any number of tags. The following are reserved keys that cannot be used:
528
+ - db_embedding_id
529
+ - organization_id
530
+ - user_id
531
+ - organization_user_file_id
532
+
533
+ Carbon currently supports two data types for tag values - `string` and `list<string>`.
534
+ Keys can only be `string`. If values other than `string` and `list<string>` are used,
535
+ they're automatically converted to strings (e.g. 4 will become "4").
536
+
537
+ #### πŸ› οΈ Usage<a id="πŸ› οΈ-usage"></a>
538
+
539
+ ```ruby
540
+ result = carbon.files.create_user_file_tags(
541
+ tags: {
542
+ "key": "string_example",
543
+ },
544
+ organization_user_file_id: 1,
545
+ )
546
+ p result
547
+ ```
548
+
549
+ #### βš™οΈ Parameters<a id="βš™οΈ-parameters"></a>
550
+
551
+ ##### tags: Hash<string, [`Tags1`](./lib/carbon_ruby_sdk/models/tags1.rb)><a id="tags-hash"></a>
552
+ ##### organization_user_file_id: `Integer`<a id="organization_user_file_id-integer"></a>
553
+ #### πŸ”„ Return<a id="πŸ”„-return"></a>
554
+
555
+ [UserFile](./lib/carbon_ruby_sdk/models/user_file.rb)
556
+
557
+ #### 🌐 Endpoint<a id="🌐-endpoint"></a>
558
+
559
+ `/create_user_file_tags` `POST`
560
+
561
+ [πŸ”™ **Back to Table of Contents**](#table-of-contents)
562
+
563
+ ---
564
+
565
+
566
+ ### `carbon.files.delete`<a id="carbonfilesdelete"></a>
567
+
568
+ Delete File Endpoint
569
+
570
+ #### πŸ› οΈ Usage<a id="πŸ› οΈ-usage"></a>
571
+
572
+ ```ruby
573
+ result = carbon.files.delete(
574
+ file_id: 1,
575
+ )
576
+ p result
577
+ ```
578
+
579
+ #### βš™οΈ Parameters<a id="βš™οΈ-parameters"></a>
580
+
581
+ ##### file_id: `Integer`<a id="file_id-integer"></a>
582
+ #### πŸ”„ Return<a id="πŸ”„-return"></a>
583
+
584
+ [GenericSuccessResponse](./lib/carbon_ruby_sdk/models/generic_success_response.rb)
585
+
586
+ #### 🌐 Endpoint<a id="🌐-endpoint"></a>
587
+
588
+ `/deletefile/{file_id}` `DELETE`
589
+
590
+ [πŸ”™ **Back to Table of Contents**](#table-of-contents)
591
+
592
+ ---
593
+
594
+
595
+ ### `carbon.files.delete_file_tags`<a id="carbonfilesdelete_file_tags"></a>
596
+
597
+ Delete File Tags
598
+
599
+ #### πŸ› οΈ Usage<a id="πŸ› οΈ-usage"></a>
600
+
601
+ ```ruby
602
+ result = carbon.files.delete_file_tags(
603
+ tags: [
604
+ "string_example"
605
+ ],
606
+ organization_user_file_id: 1,
607
+ )
608
+ p result
609
+ ```
610
+
611
+ #### βš™οΈ Parameters<a id="βš™οΈ-parameters"></a>
612
+
613
+ ##### tags: Array<`String`><a id="tags-array"></a>
614
+ ##### organization_user_file_id: `Integer`<a id="organization_user_file_id-integer"></a>
615
+ #### πŸ”„ Return<a id="πŸ”„-return"></a>
616
+
617
+ [UserFile](./lib/carbon_ruby_sdk/models/user_file.rb)
618
+
619
+ #### 🌐 Endpoint<a id="🌐-endpoint"></a>
620
+
621
+ `/delete_user_file_tags` `POST`
622
+
623
+ [πŸ”™ **Back to Table of Contents**](#table-of-contents)
624
+
625
+ ---
626
+
627
+
628
+ ### `carbon.files.delete_many`<a id="carbonfilesdelete_many"></a>
629
+
630
+ Delete Files Endpoint
631
+
632
+ #### πŸ› οΈ Usage<a id="πŸ› οΈ-usage"></a>
633
+
634
+ ```ruby
635
+ result = carbon.files.delete_many(
636
+ file_ids: [
637
+ 1
638
+ ],
639
+ sync_statuses: [
640
+ "string_example"
641
+ ],
642
+ delete_non_synced_only: false,
643
+ send_webhook: false,
644
+ )
645
+ p result
646
+ ```
647
+
648
+ #### βš™οΈ Parameters<a id="βš™οΈ-parameters"></a>
649
+
650
+ ##### file_ids: Array<`Integer`><a id="file_ids-array"></a>
651
+ ##### sync_statuses: Array<[`ExternalFileSyncStatuses`](./lib/carbon_ruby_sdk/models/external_file_sync_statuses.rb)><a id="sync_statuses-array"></a>
652
+ ##### delete_non_synced_only: `Boolean`<a id="delete_non_synced_only-boolean"></a>
653
+ ##### send_webhook: `Boolean`<a id="send_webhook-boolean"></a>
654
+ #### πŸ”„ Return<a id="πŸ”„-return"></a>
655
+
656
+ [GenericSuccessResponse](./lib/carbon_ruby_sdk/models/generic_success_response.rb)
657
+
658
+ #### 🌐 Endpoint<a id="🌐-endpoint"></a>
659
+
660
+ `/delete_files` `POST`
661
+
662
+ [πŸ”™ **Back to Table of Contents**](#table-of-contents)
663
+
664
+ ---
665
+
666
+
667
+ ### `carbon.files.get_parsed_file`<a id="carbonfilesget_parsed_file"></a>
668
+
669
+ This route is deprecated. Use `/user_files_v2` instead.
670
+
671
+ #### πŸ› οΈ Usage<a id="πŸ› οΈ-usage"></a>
672
+
673
+ ```ruby
674
+ result = carbon.files.get_parsed_file(
675
+ file_id: 1,
676
+ )
677
+ p result
678
+ ```
679
+
680
+ #### βš™οΈ Parameters<a id="βš™οΈ-parameters"></a>
681
+
682
+ ##### file_id: `Integer`<a id="file_id-integer"></a>
683
+ #### πŸ”„ Return<a id="πŸ”„-return"></a>
684
+
685
+ [PresignedURLResponse](./lib/carbon_ruby_sdk/models/presigned_url_response.rb)
686
+
687
+ #### 🌐 Endpoint<a id="🌐-endpoint"></a>
688
+
689
+ `/parsed_file/{file_id}` `GET`
690
+
691
+ [πŸ”™ **Back to Table of Contents**](#table-of-contents)
692
+
693
+ ---
694
+
695
+
696
+ ### `carbon.files.get_raw_file`<a id="carbonfilesget_raw_file"></a>
697
+
698
+ This route is deprecated. Use `/user_files_v2` instead.
699
+
700
+ #### πŸ› οΈ Usage<a id="πŸ› οΈ-usage"></a>
701
+
702
+ ```ruby
703
+ result = carbon.files.get_raw_file(
704
+ file_id: 1,
705
+ )
706
+ p result
707
+ ```
708
+
709
+ #### βš™οΈ Parameters<a id="βš™οΈ-parameters"></a>
710
+
711
+ ##### file_id: `Integer`<a id="file_id-integer"></a>
712
+ #### πŸ”„ Return<a id="πŸ”„-return"></a>
713
+
714
+ [PresignedURLResponse](./lib/carbon_ruby_sdk/models/presigned_url_response.rb)
715
+
716
+ #### 🌐 Endpoint<a id="🌐-endpoint"></a>
717
+
718
+ `/raw_file/{file_id}` `GET`
719
+
720
+ [πŸ”™ **Back to Table of Contents**](#table-of-contents)
721
+
722
+ ---
723
+
724
+
725
+ ### `carbon.files.query_user_files`<a id="carbonfilesquery_user_files"></a>
726
+
727
+ For pre-filtering documents, using `tags_v2` is preferred to using `tags` (which is now deprecated). If both `tags_v2`
728
+ and `tags` are specified, `tags` is ignored. `tags_v2` enables
729
+ building complex filters through the use of "AND", "OR", and negation logic. Take the below input as an example:
730
+ ```json
731
+ {
732
+ "OR": [
733
+ {
734
+ "key": "subject",
735
+ "value": "holy-bible",
736
+ "negate": false
737
+ },
738
+ {
739
+ "key": "person-of-interest",
740
+ "value": "jesus christ",
741
+ "negate": false
742
+ },
743
+ {
744
+ "key": "genre",
745
+ "value": "religion",
746
+ "negate": true
747
+ }
748
+ {
749
+ "AND": [
750
+ {
751
+ "key": "subject",
752
+ "value": "tao-te-ching",
753
+ "negate": false
754
+ },
755
+ {
756
+ "key": "author",
757
+ "value": "lao-tzu",
758
+ "negate": false
759
+ }
760
+ ]
761
+ }
762
+ ]
763
+ }
764
+ ```
765
+ In this case, files will be filtered such that:
766
+ 1. "subject" = "holy-bible" OR
767
+ 2. "person-of-interest" = "jesus christ" OR
768
+ 3. "genre" != "religion" OR
769
+ 4. "subject" = "tao-te-ching" AND "author" = "lao-tzu"
770
+
771
+ Note that the top level of the query must be either an "OR" or "AND" array. Currently, nesting is limited to 3.
772
+ For tag blocks (those with "key", "value", and "negate" keys), the following typing rules apply:
773
+ 1. "key" isn't optional and must be a `string`
774
+ 2. "value" isn't optional and can be `any` or list[`any`]
775
+ 3. "negate" is optional and must be `true` or `false`. If present and `true`, then the filter block is negated in
776
+ the resulting query. It is `false` by default.
777
+
778
+ #### πŸ› οΈ Usage<a id="πŸ› οΈ-usage"></a>
779
+
780
+ ```ruby
781
+ result = carbon.files.query_user_files(
782
+ pagination: {
783
+ "limit" => 10,
784
+ "offset" => 0,
785
+ },
786
+ order_by: "created_at",
787
+ order_dir: "desc",
788
+ filters: {
789
+ },
790
+ include_raw_file: true,
791
+ include_parsed_text_file: true,
792
+ include_additional_files: true,
793
+ )
794
+ p result
795
+ ```
796
+
797
+ #### βš™οΈ Parameters<a id="βš™οΈ-parameters"></a>
798
+
799
+ ##### pagination: [`Pagination`](./lib/carbon_ruby_sdk/models/pagination.rb)<a id="pagination-paginationlibcarbon_ruby_sdkmodelspaginationrb"></a>
800
+ ##### order_by: [`OrganizationUserFilesToSyncOrderByTypes`](./lib/carbon_ruby_sdk/models/organization_user_files_to_sync_order_by_types.rb)<a id="order_by-organizationuserfilestosyncorderbytypeslibcarbon_ruby_sdkmodelsorganization_user_files_to_sync_order_by_typesrb"></a>
801
+ ##### order_dir: [`OrderDir`](./lib/carbon_ruby_sdk/models/order_dir.rb)<a id="order_dir-orderdirlibcarbon_ruby_sdkmodelsorder_dirrb"></a>
802
+ ##### filters: [`OrganizationUserFilesToSyncFilters`](./lib/carbon_ruby_sdk/models/organization_user_files_to_sync_filters.rb)<a id="filters-organizationuserfilestosyncfilterslibcarbon_ruby_sdkmodelsorganization_user_files_to_sync_filtersrb"></a>
803
+ ##### include_raw_file: `Boolean`<a id="include_raw_file-boolean"></a>
804
+ ##### include_parsed_text_file: `Boolean`<a id="include_parsed_text_file-boolean"></a>
805
+ ##### include_additional_files: `Boolean`<a id="include_additional_files-boolean"></a>
806
+ #### πŸ”„ Return<a id="πŸ”„-return"></a>
807
+
808
+ [UserFilesV2](./lib/carbon_ruby_sdk/models/user_files_v2.rb)
809
+
810
+ #### 🌐 Endpoint<a id="🌐-endpoint"></a>
811
+
812
+ `/user_files_v2` `POST`
813
+
814
+ [πŸ”™ **Back to Table of Contents**](#table-of-contents)
815
+
816
+ ---
817
+
818
+
819
+ ### `carbon.files.query_user_files_deprecated`<a id="carbonfilesquery_user_files_deprecated"></a>
820
+
821
+ This route is deprecated. Use `/user_files_v2` instead.
822
+
823
+ #### πŸ› οΈ Usage<a id="πŸ› οΈ-usage"></a>
824
+
825
+ ```ruby
826
+ result = carbon.files.query_user_files_deprecated(
827
+ pagination: {
828
+ "limit" => 10,
829
+ "offset" => 0,
830
+ },
831
+ order_by: "created_at",
832
+ order_dir: "desc",
833
+ filters: {
834
+ },
835
+ include_raw_file: true,
836
+ include_parsed_text_file: true,
837
+ include_additional_files: true,
838
+ )
839
+ p result
840
+ ```
841
+
842
+ #### βš™οΈ Parameters<a id="βš™οΈ-parameters"></a>
843
+
844
+ ##### pagination: [`Pagination`](./lib/carbon_ruby_sdk/models/pagination.rb)<a id="pagination-paginationlibcarbon_ruby_sdkmodelspaginationrb"></a>
845
+ ##### order_by: [`OrganizationUserFilesToSyncOrderByTypes`](./lib/carbon_ruby_sdk/models/organization_user_files_to_sync_order_by_types.rb)<a id="order_by-organizationuserfilestosyncorderbytypeslibcarbon_ruby_sdkmodelsorganization_user_files_to_sync_order_by_typesrb"></a>
846
+ ##### order_dir: [`OrderDir`](./lib/carbon_ruby_sdk/models/order_dir.rb)<a id="order_dir-orderdirlibcarbon_ruby_sdkmodelsorder_dirrb"></a>
847
+ ##### filters: [`OrganizationUserFilesToSyncFilters`](./lib/carbon_ruby_sdk/models/organization_user_files_to_sync_filters.rb)<a id="filters-organizationuserfilestosyncfilterslibcarbon_ruby_sdkmodelsorganization_user_files_to_sync_filtersrb"></a>
848
+ ##### include_raw_file: `Boolean`<a id="include_raw_file-boolean"></a>
849
+ ##### include_parsed_text_file: `Boolean`<a id="include_parsed_text_file-boolean"></a>
850
+ ##### include_additional_files: `Boolean`<a id="include_additional_files-boolean"></a>
851
+ #### πŸ”„ Return<a id="πŸ”„-return"></a>
852
+
853
+ [UserFile](./lib/carbon_ruby_sdk/models/user_file.rb)
854
+
855
+ #### 🌐 Endpoint<a id="🌐-endpoint"></a>
856
+
857
+ `/user_files` `POST`
858
+
859
+ [πŸ”™ **Back to Table of Contents**](#table-of-contents)
860
+
861
+ ---
862
+
863
+
864
+ ### `carbon.files.resync`<a id="carbonfilesresync"></a>
865
+
866
+ Resync File
867
+
868
+ #### πŸ› οΈ Usage<a id="πŸ› οΈ-usage"></a>
869
+
870
+ ```ruby
871
+ result = carbon.files.resync(
872
+ file_id: 1,
873
+ chunk_size: 1,
874
+ chunk_overlap: 1,
875
+ )
876
+ p result
877
+ ```
878
+
879
+ #### βš™οΈ Parameters<a id="βš™οΈ-parameters"></a>
880
+
881
+ ##### file_id: `Integer`<a id="file_id-integer"></a>
882
+ ##### chunk_size: `Integer`<a id="chunk_size-integer"></a>
883
+ ##### chunk_overlap: `Integer`<a id="chunk_overlap-integer"></a>
884
+ #### πŸ”„ Return<a id="πŸ”„-return"></a>
885
+
886
+ [UserFile](./lib/carbon_ruby_sdk/models/user_file.rb)
887
+
888
+ #### 🌐 Endpoint<a id="🌐-endpoint"></a>
889
+
890
+ `/resync_file` `POST`
891
+
892
+ [πŸ”™ **Back to Table of Contents**](#table-of-contents)
893
+
894
+ ---
895
+
896
+
897
+ ### `carbon.files.upload`<a id="carbonfilesupload"></a>
898
+
899
+ This endpoint is used to directly upload local files to Carbon. The `POST` request should be a multipart form request.
900
+ Note that the `set_page_as_boundary` query parameter is applicable only to PDFs for now. When this value is set,
901
+ PDF chunks are at most one page long. Additional information can be retrieved for each chunk, however, namely the coordinates
902
+ of the bounding box around the chunk (this can be used for things like text highlighting). Following is a description
903
+ of all possible query parameters:
904
+ - `chunk_size`: the chunk size (in tokens) applied when splitting the document
905
+ - `chunk_overlap`: the chunk overlap (in tokens) applied when splitting the document
906
+ - `skip_embedding_generation`: whether or not to skip the generation of chunks and embeddings
907
+ - `set_page_as_boundary`: described above
908
+ - `embedding_model`: the model used to generate embeddings for the document chunks
909
+ - `use_ocr`: whether or not to use OCR as a preprocessing step prior to generating chunks (only valid for PDFs currently)
910
+ - `generate_sparse_vectors`: whether or not to generate sparse vectors for the file. Required for hybrid search.
911
+ - `prepend_filename_to_chunks`: whether or not to prepend the filename to the chunk text
912
+
913
+
914
+ Carbon supports multiple models for use in generating embeddings for files. For images, we support Vertex AI's
915
+ multimodal model; for text, we support OpenAI's `text-embedding-ada-002` and Cohere's embed-multilingual-v3.0.
916
+ The model can be specified via the `embedding_model` parameter (in the POST body for `/embeddings`, and a query
917
+ parameter in `/uploadfile`). If no model is supplied, the `text-embedding-ada-002` is used by default. When performing
918
+ embedding queries, embeddings from files that used the specified model will be considered in the query.
919
+ For example, if files A and B have embeddings generated with `OPENAI`, and files C and D have embeddings generated with
920
+ `COHERE_MULTILINGUAL_V3`, then by default, queries will only consider files A and B. If `COHERE_MULTILINGUAL_V3` is
921
+ specified as the `embedding_model` in `/embeddings`, then only files C and D will be considered. Make sure that
922
+ the set of all files you want considered for a query have embeddings generated via the same model. For now, **do not**
923
+ set `VERTEX_MULTIMODAL` as an `embedding_model`. This model is used automatically by Carbon when it detects an image file.
924
+
925
+ #### πŸ› οΈ Usage<a id="πŸ› οΈ-usage"></a>
926
+
927
+ ```ruby
928
+ result = carbon.files.upload(
929
+ file: File.open("path/to/file", "rb"),
930
+ chunk_size: 1,
931
+ chunk_overlap: 1,
932
+ skip_embedding_generation: false,
933
+ set_page_as_boundary: false,
934
+ embedding_model: "OPENAI",
935
+ use_ocr: false,
936
+ generate_sparse_vectors: false,
937
+ prepend_filename_to_chunks: false,
938
+ max_items_per_chunk: 1,
939
+ )
940
+ p result
941
+ ```
942
+
943
+ #### βš™οΈ Parameters<a id="βš™οΈ-parameters"></a>
944
+
945
+ ##### file: `File`<a id="file-file"></a>
946
+ ##### chunk_size: `Integer`<a id="chunk_size-integer"></a>
947
+ Chunk size in tiktoken tokens to be used when processing file.
948
+
949
+ ##### chunk_overlap: `Integer`<a id="chunk_overlap-integer"></a>
950
+ Chunk overlap in tiktoken tokens to be used when processing file.
951
+
952
+ ##### skip_embedding_generation: `Boolean`<a id="skip_embedding_generation-boolean"></a>
953
+ Flag to control whether or not embeddings should be generated and stored when
954
+ processing file.
955
+
956
+ ##### set_page_as_boundary: `Boolean`<a id="set_page_as_boundary-boolean"></a>
957
+ Flag to control whether or not to set the a page's worth of content as the
958
+ maximum amount of content that can appear in a chunk. Only valid for PDFs. See
959
+ description route description for more information.
960
+
961
+ ##### embedding_model: [`TextEmbeddingGenerators`](./lib/carbon_ruby_sdk/models/text_embedding_generators.rb)<a id="embedding_model-textembeddinggeneratorslibcarbon_ruby_sdkmodelstext_embedding_generatorsrb"></a>
962
+ Embedding model that will be used to embed file chunks.
963
+
964
+ ##### use_ocr: `Boolean`<a id="use_ocr-boolean"></a>
965
+ Whether or not to use OCR when processing files. Only valid for PDFs. Useful for
966
+ documents with tables, images, and/or scanned text.
967
+
968
+ ##### generate_sparse_vectors: `Boolean`<a id="generate_sparse_vectors-boolean"></a>
969
+ Whether or not to generate sparse vectors for the file. This is *required* for
970
+ the file to be a candidate for hybrid search.
971
+
972
+ ##### prepend_filename_to_chunks: `Boolean`<a id="prepend_filename_to_chunks-boolean"></a>
973
+ Whether or not to prepend the file's name to chunks.
974
+
975
+ ##### max_items_per_chunk: `Integer`<a id="max_items_per_chunk-integer"></a>
976
+ Number of objects per chunk. For json files only.
977
+
978
+ #### πŸ”„ Return<a id="πŸ”„-return"></a>
979
+
980
+ [UserFile](./lib/carbon_ruby_sdk/models/user_file.rb)
981
+
982
+ #### 🌐 Endpoint<a id="🌐-endpoint"></a>
983
+
984
+ `/uploadfile` `POST`
985
+
986
+ [πŸ”™ **Back to Table of Contents**](#table-of-contents)
987
+
988
+ ---
989
+
990
+
991
+ ### `carbon.files.upload_from_url`<a id="carbonfilesupload_from_url"></a>
992
+
993
+ Create Upload File From Url
994
+
995
+ #### πŸ› οΈ Usage<a id="πŸ› οΈ-usage"></a>
996
+
997
+ ```ruby
998
+ result = carbon.files.upload_from_url(
999
+ url: "string_example",
1000
+ file_name: "string_example",
1001
+ chunk_size: 1,
1002
+ chunk_overlap: 1,
1003
+ skip_embedding_generation: false,
1004
+ set_page_as_boundary: false,
1005
+ embedding_model: "OPENAI",
1006
+ generate_sparse_vectors: false,
1007
+ use_textract: false,
1008
+ prepend_filename_to_chunks: false,
1009
+ max_items_per_chunk: 1,
1010
+ )
1011
+ p result
1012
+ ```
1013
+
1014
+ #### βš™οΈ Parameters<a id="βš™οΈ-parameters"></a>
1015
+
1016
+ ##### url: `String`<a id="url-string"></a>
1017
+ ##### file_name: `String`<a id="file_name-string"></a>
1018
+ ##### chunk_size: `Integer`<a id="chunk_size-integer"></a>
1019
+ ##### chunk_overlap: `Integer`<a id="chunk_overlap-integer"></a>
1020
+ ##### skip_embedding_generation: `Boolean`<a id="skip_embedding_generation-boolean"></a>
1021
+ ##### set_page_as_boundary: `Boolean`<a id="set_page_as_boundary-boolean"></a>
1022
+ ##### embedding_model: [`EmbeddingGenerators`](./lib/carbon_ruby_sdk/models/embedding_generators.rb)<a id="embedding_model-embeddinggeneratorslibcarbon_ruby_sdkmodelsembedding_generatorsrb"></a>
1023
+ ##### generate_sparse_vectors: `Boolean`<a id="generate_sparse_vectors-boolean"></a>
1024
+ ##### use_textract: `Boolean`<a id="use_textract-boolean"></a>
1025
+ ##### prepend_filename_to_chunks: `Boolean`<a id="prepend_filename_to_chunks-boolean"></a>
1026
+ ##### max_items_per_chunk: `Integer`<a id="max_items_per_chunk-integer"></a>
1027
+ #### πŸ”„ Return<a id="πŸ”„-return"></a>
1028
+
1029
+ [UserFile](./lib/carbon_ruby_sdk/models/user_file.rb)
1030
+
1031
+ #### 🌐 Endpoint<a id="🌐-endpoint"></a>
1032
+
1033
+ `/upload_file_from_url` `POST`
1034
+
1035
+ [πŸ”™ **Back to Table of Contents**](#table-of-contents)
1036
+
1037
+ ---
1038
+
1039
+
1040
+ ### `carbon.files.upload_text`<a id="carbonfilesupload_text"></a>
1041
+
1042
+ Carbon supports multiple models for use in generating embeddings for files. For images, we support Vertex AI's
1043
+ multimodal model; for text, we support OpenAI's `text-embedding-ada-002` and Cohere's embed-multilingual-v3.0.
1044
+ The model can be specified via the `embedding_model` parameter (in the POST body for `/embeddings`, and a query
1045
+ parameter in `/uploadfile`). If no model is supplied, the `text-embedding-ada-002` is used by default. When performing
1046
+ embedding queries, embeddings from files that used the specified model will be considered in the query.
1047
+ For example, if files A and B have embeddings generated with `OPENAI`, and files C and D have embeddings generated with
1048
+ `COHERE_MULTILINGUAL_V3`, then by default, queries will only consider files A and B. If `COHERE_MULTILINGUAL_V3` is
1049
+ specified as the `embedding_model` in `/embeddings`, then only files C and D will be considered. Make sure that
1050
+ the set of all files you want considered for a query have embeddings generated via the same model. For now, **do not**
1051
+ set `VERTEX_MULTIMODAL` as an `embedding_model`. This model is used automatically by Carbon when it detects an image file.
1052
+
1053
+ #### πŸ› οΈ Usage<a id="πŸ› οΈ-usage"></a>
1054
+
1055
+ ```ruby
1056
+ result = carbon.files.upload_text(
1057
+ contents: "string_example",
1058
+ name: "string_example",
1059
+ chunk_size: 1,
1060
+ chunk_overlap: 1,
1061
+ skip_embedding_generation: false,
1062
+ overwrite_file_id: 1,
1063
+ embedding_model: "OPENAI",
1064
+ generate_sparse_vectors: false,
1065
+ )
1066
+ p result
1067
+ ```
1068
+
1069
+ #### βš™οΈ Parameters<a id="βš™οΈ-parameters"></a>
1070
+
1071
+ ##### contents: `String`<a id="contents-string"></a>
1072
+ ##### name: `String`<a id="name-string"></a>
1073
+ ##### chunk_size: `Integer`<a id="chunk_size-integer"></a>
1074
+ ##### chunk_overlap: `Integer`<a id="chunk_overlap-integer"></a>
1075
+ ##### skip_embedding_generation: `Boolean`<a id="skip_embedding_generation-boolean"></a>
1076
+ ##### overwrite_file_id: `Integer`<a id="overwrite_file_id-integer"></a>
1077
+ ##### embedding_model: [`EmbeddingGeneratorsNullable`](./lib/carbon_ruby_sdk/models/embedding_generators_nullable.rb)<a id="embedding_model-embeddinggeneratorsnullablelibcarbon_ruby_sdkmodelsembedding_generators_nullablerb"></a>
1078
+ ##### generate_sparse_vectors: `Boolean`<a id="generate_sparse_vectors-boolean"></a>
1079
+ #### πŸ”„ Return<a id="πŸ”„-return"></a>
1080
+
1081
+ [UserFile](./lib/carbon_ruby_sdk/models/user_file.rb)
1082
+
1083
+ #### 🌐 Endpoint<a id="🌐-endpoint"></a>
1084
+
1085
+ `/upload_text` `POST`
1086
+
1087
+ [πŸ”™ **Back to Table of Contents**](#table-of-contents)
1088
+
1089
+ ---
1090
+
1091
+
1092
+ ### `carbon.health.check`<a id="carbonhealthcheck"></a>
1093
+
1094
+ Health
1095
+
1096
+ #### πŸ› οΈ Usage<a id="πŸ› οΈ-usage"></a>
1097
+
1098
+ ```ruby
1099
+ result = carbon.health.check
1100
+ p result
1101
+ ```
1102
+
1103
+ #### 🌐 Endpoint<a id="🌐-endpoint"></a>
1104
+
1105
+ `/health` `GET`
1106
+
1107
+ [πŸ”™ **Back to Table of Contents**](#table-of-contents)
1108
+
1109
+ ---
1110
+
1111
+
1112
+ ### `carbon.integrations.connect_freshdesk`<a id="carbonintegrationsconnect_freshdesk"></a>
1113
+
1114
+ Refer this article to obtain an API key https://support.freshdesk.com/en/support/solutions/articles/215517.
1115
+ Make sure that your API key has the permission to read solutions from your account and you are on a <b>paid</b> plan.
1116
+ Once you have an API key, you can make a request to this endpoint along with your freshdesk domain. This will
1117
+ trigger an automatic sync of the articles in your "solutions" tab. Additional parameters below can be used to associate
1118
+ data with the synced articles or modify the sync behavior.
1119
+
1120
+ #### πŸ› οΈ Usage<a id="πŸ› οΈ-usage"></a>
1121
+
1122
+ ```ruby
1123
+ result = carbon.integrations.connect_freshdesk(
1124
+ domain: "string_example",
1125
+ api_key: "string_example",
1126
+ tags: {},
1127
+ chunk_size: 1500,
1128
+ chunk_overlap: 20,
1129
+ skip_embedding_generation: false,
1130
+ embedding_model: "OPENAI",
1131
+ generate_sparse_vectors: false,
1132
+ prepend_filename_to_chunks: false,
1133
+ )
1134
+ p result
1135
+ ```
1136
+
1137
+ #### βš™οΈ Parameters<a id="βš™οΈ-parameters"></a>
1138
+
1139
+ ##### domain: `String`<a id="domain-string"></a>
1140
+ ##### api_key: `String`<a id="api_key-string"></a>
1141
+ ##### tags: `Object`<a id="tags-object"></a>
1142
+ ##### chunk_size: `Integer`<a id="chunk_size-integer"></a>
1143
+ ##### chunk_overlap: `Integer`<a id="chunk_overlap-integer"></a>
1144
+ ##### skip_embedding_generation: `Boolean`<a id="skip_embedding_generation-boolean"></a>
1145
+ ##### embedding_model: [`EmbeddingGeneratorsNullable`](./lib/carbon_ruby_sdk/models/embedding_generators_nullable.rb)<a id="embedding_model-embeddinggeneratorsnullablelibcarbon_ruby_sdkmodelsembedding_generators_nullablerb"></a>
1146
+ ##### generate_sparse_vectors: `Boolean`<a id="generate_sparse_vectors-boolean"></a>
1147
+ ##### prepend_filename_to_chunks: `Boolean`<a id="prepend_filename_to_chunks-boolean"></a>
1148
+ #### πŸ”„ Return<a id="πŸ”„-return"></a>
1149
+
1150
+ [GenericSuccessResponse](./lib/carbon_ruby_sdk/models/generic_success_response.rb)
1151
+
1152
+ #### 🌐 Endpoint<a id="🌐-endpoint"></a>
1153
+
1154
+ `/integrations/freshdesk` `POST`
1155
+
1156
+ [πŸ”™ **Back to Table of Contents**](#table-of-contents)
1157
+
1158
+ ---
1159
+
1160
+
1161
+ ### `carbon.integrations.connect_gitbook`<a id="carbonintegrationsconnect_gitbook"></a>
1162
+
1163
+ You will need an access token to connect your Gitbook account. Note that the permissions will be defined by the user
1164
+ generating access token so make sure you have the permission to access spaces you will be syncing.
1165
+ Refer this article for more details https://developer.gitbook.com/gitbook-api/authentication. Additionally, you
1166
+ need to specify the name of organization you will be syncing data from.
1167
+
1168
+ #### πŸ› οΈ Usage<a id="πŸ› οΈ-usage"></a>
1169
+
1170
+ ```ruby
1171
+ result = carbon.integrations.connect_gitbook(
1172
+ organization: "string_example",
1173
+ access_token: "string_example",
1174
+ )
1175
+ p result
1176
+ ```
1177
+
1178
+ #### βš™οΈ Parameters<a id="βš™οΈ-parameters"></a>
1179
+
1180
+ ##### organization: `String`<a id="organization-string"></a>
1181
+ ##### access_token: `String`<a id="access_token-string"></a>
1182
+ #### πŸ”„ Return<a id="πŸ”„-return"></a>
1183
+
1184
+ [GenericSuccessResponse](./lib/carbon_ruby_sdk/models/generic_success_response.rb)
1185
+
1186
+ #### 🌐 Endpoint<a id="🌐-endpoint"></a>
1187
+
1188
+ `/integrations/gitbook` `POST`
1189
+
1190
+ [πŸ”™ **Back to Table of Contents**](#table-of-contents)
1191
+
1192
+ ---
1193
+
1194
+
1195
+ ### `carbon.integrations.create_aws_iam_user`<a id="carbonintegrationscreate_aws_iam_user"></a>
1196
+
1197
+ Create a new IAM user with permissions to:
1198
+ <ol>
1199
+ <li>List all buckets.</li>
1200
+ <li>Read from the specific buckets and objects to sync with Carbon. Ensure any future buckets or objects carry
1201
+ the same permissions.</li>
1202
+ </ol>
1203
+ Once created, generate an access key for this user and share the credentials with us. We recommend testing this key beforehand.
1204
+
1205
+ #### πŸ› οΈ Usage<a id="πŸ› οΈ-usage"></a>
1206
+
1207
+ ```ruby
1208
+ result = carbon.integrations.create_aws_iam_user(
1209
+ access_key: "string_example",
1210
+ access_key_secret: "string_example",
1211
+ )
1212
+ p result
1213
+ ```
1214
+
1215
+ #### βš™οΈ Parameters<a id="βš™οΈ-parameters"></a>
1216
+
1217
+ ##### access_key: `String`<a id="access_key-string"></a>
1218
+ ##### access_key_secret: `String`<a id="access_key_secret-string"></a>
1219
+ #### πŸ”„ Return<a id="πŸ”„-return"></a>
1220
+
1221
+ [OrganizationUserDataSourceAPI](./lib/carbon_ruby_sdk/models/organization_user_data_source_api.rb)
1222
+
1223
+ #### 🌐 Endpoint<a id="🌐-endpoint"></a>
1224
+
1225
+ `/integrations/s3` `POST`
1226
+
1227
+ [πŸ”™ **Back to Table of Contents**](#table-of-contents)
1228
+
1229
+ ---
1230
+
1231
+
1232
+ ### `carbon.integrations.get_oauth_url`<a id="carbonintegrationsget_oauth_url"></a>
1233
+
1234
+ Get Oauth Url
1235
+
1236
+ #### πŸ› οΈ Usage<a id="πŸ› οΈ-usage"></a>
1237
+
1238
+ ```ruby
1239
+ result = carbon.integrations.get_oauth_url(
1240
+ service: "GOOGLE_DRIVE",
1241
+ tags: None,
1242
+ scope: "string_example",
1243
+ chunk_size: 1500,
1244
+ chunk_overlap: 20,
1245
+ skip_embedding_generation: false,
1246
+ embedding_model: "OPENAI",
1247
+ zendesk_subdomain: "string_example",
1248
+ microsoft_tenant: "string_example",
1249
+ sharepoint_site_name: "string_example",
1250
+ confluence_subdomain: "string_example",
1251
+ generate_sparse_vectors: false,
1252
+ prepend_filename_to_chunks: false,
1253
+ max_items_per_chunk: 1,
1254
+ )
1255
+ p result
1256
+ ```
1257
+
1258
+ #### βš™οΈ Parameters<a id="βš™οΈ-parameters"></a>
1259
+
1260
+ ##### service: [`DataSourceType`](./lib/carbon_ruby_sdk/models/data_source_type.rb)<a id="service-datasourcetypelibcarbon_ruby_sdkmodelsdata_source_typerb"></a>
1261
+ ##### tags: `Object`<a id="tags-object"></a>
1262
+ ##### scope: `String`<a id="scope-string"></a>
1263
+ ##### chunk_size: `Integer`<a id="chunk_size-integer"></a>
1264
+ ##### chunk_overlap: `Integer`<a id="chunk_overlap-integer"></a>
1265
+ ##### skip_embedding_generation: `Boolean`<a id="skip_embedding_generation-boolean"></a>
1266
+ ##### embedding_model: [`EmbeddingGeneratorsNullable`](./lib/carbon_ruby_sdk/models/embedding_generators_nullable.rb)<a id="embedding_model-embeddinggeneratorsnullablelibcarbon_ruby_sdkmodelsembedding_generators_nullablerb"></a>
1267
+ ##### zendesk_subdomain: `String`<a id="zendesk_subdomain-string"></a>
1268
+ ##### microsoft_tenant: `String`<a id="microsoft_tenant-string"></a>
1269
+ ##### sharepoint_site_name: `String`<a id="sharepoint_site_name-string"></a>
1270
+ ##### confluence_subdomain: `String`<a id="confluence_subdomain-string"></a>
1271
+ ##### generate_sparse_vectors: `Boolean`<a id="generate_sparse_vectors-boolean"></a>
1272
+ ##### prepend_filename_to_chunks: `Boolean`<a id="prepend_filename_to_chunks-boolean"></a>
1273
+ ##### max_items_per_chunk: `Integer`<a id="max_items_per_chunk-integer"></a>
1274
+ #### 🌐 Endpoint<a id="🌐-endpoint"></a>
1275
+
1276
+ `/integrations/oauth_url` `POST`
1277
+
1278
+ [πŸ”™ **Back to Table of Contents**](#table-of-contents)
1279
+
1280
+ ---
1281
+
1282
+
1283
+ ### `carbon.integrations.list_confluence_pages`<a id="carbonintegrationslist_confluence_pages"></a>
1284
+
1285
+ To begin listing a user's Confluence pages, at least a `data_source_id` of a connected
1286
+ Confluence account must be specified. This base request returns a list of root pages for
1287
+ every space the user has access to in a Confluence instance. To traverse further down
1288
+ the user's page directory, additional requests to this endpoint can be made with the same
1289
+ `data_source_id` and with `parent_id` set to the id of page from a previous request. For
1290
+ convenience, the `has_children` property in each directory item in the response list will
1291
+ flag which pages will return non-empty lists of pages when set as the `parent_id`.
1292
+
1293
+ #### πŸ› οΈ Usage<a id="πŸ› οΈ-usage"></a>
1294
+
1295
+ ```ruby
1296
+ result = carbon.integrations.list_confluence_pages(
1297
+ data_source_id: 1,
1298
+ parent_id: "string_example",
1299
+ )
1300
+ p result
1301
+ ```
1302
+
1303
+ #### βš™οΈ Parameters<a id="βš™οΈ-parameters"></a>
1304
+
1305
+ ##### data_source_id: `Integer`<a id="data_source_id-integer"></a>
1306
+ ##### parent_id: `String`<a id="parent_id-string"></a>
1307
+ #### πŸ”„ Return<a id="πŸ”„-return"></a>
1308
+
1309
+ [ListResponse](./lib/carbon_ruby_sdk/models/list_response.rb)
1310
+
1311
+ #### 🌐 Endpoint<a id="🌐-endpoint"></a>
1312
+
1313
+ `/integrations/confluence/list` `POST`
1314
+
1315
+ [πŸ”™ **Back to Table of Contents**](#table-of-contents)
1316
+
1317
+ ---
1318
+
1319
+
1320
+ ### `carbon.integrations.list_data_source_items`<a id="carbonintegrationslist_data_source_items"></a>
1321
+
1322
+ List Data Source Items
1323
+
1324
+ #### πŸ› οΈ Usage<a id="πŸ› οΈ-usage"></a>
1325
+
1326
+ ```ruby
1327
+ result = carbon.integrations.list_data_source_items(
1328
+ data_source_id: 1,
1329
+ parent_id: "string_example",
1330
+ pagination: {
1331
+ "limit" => 10,
1332
+ "offset" => 0,
1333
+ },
1334
+ )
1335
+ p result
1336
+ ```
1337
+
1338
+ #### βš™οΈ Parameters<a id="βš™οΈ-parameters"></a>
1339
+
1340
+ ##### data_source_id: `Integer`<a id="data_source_id-integer"></a>
1341
+ ##### parent_id: `String`<a id="parent_id-string"></a>
1342
+ ##### pagination: [`Pagination`](./lib/carbon_ruby_sdk/models/pagination.rb)<a id="pagination-paginationlibcarbon_ruby_sdkmodelspaginationrb"></a>
1343
+ #### πŸ”„ Return<a id="πŸ”„-return"></a>
1344
+
1345
+ [ListDataSourceItemsResponse](./lib/carbon_ruby_sdk/models/list_data_source_items_response.rb)
1346
+
1347
+ #### 🌐 Endpoint<a id="🌐-endpoint"></a>
1348
+
1349
+ `/integrations/items/list` `POST`
1350
+
1351
+ [πŸ”™ **Back to Table of Contents**](#table-of-contents)
1352
+
1353
+ ---
1354
+
1355
+
1356
+ ### `carbon.integrations.list_folders`<a id="carbonintegrationslist_folders"></a>
1357
+
1358
+ After connecting your Outlook account, you can use this endpoint to list all of your folders on outlook. This includes
1359
+ both system folders like "inbox" and user created folders.
1360
+
1361
+ #### πŸ› οΈ Usage<a id="πŸ› οΈ-usage"></a>
1362
+
1363
+ ```ruby
1364
+ result = carbon.integrations.list_folders
1365
+ p result
1366
+ ```
1367
+
1368
+ #### 🌐 Endpoint<a id="🌐-endpoint"></a>
1369
+
1370
+ `/integrations/outlook/user_folders` `GET`
1371
+
1372
+ [πŸ”™ **Back to Table of Contents**](#table-of-contents)
1373
+
1374
+ ---
1375
+
1376
+
1377
+ ### `carbon.integrations.list_gitbook_spaces`<a id="carbonintegrationslist_gitbook_spaces"></a>
1378
+
1379
+ After connecting your Gitbook account, you can use this endpoint to list all of your spaces under current organization.
1380
+
1381
+ #### πŸ› οΈ Usage<a id="πŸ› οΈ-usage"></a>
1382
+
1383
+ ```ruby
1384
+ result = carbon.integrations.list_gitbook_spaces(
1385
+ data_source_id: 1,
1386
+ )
1387
+ p result
1388
+ ```
1389
+
1390
+ #### βš™οΈ Parameters<a id="βš™οΈ-parameters"></a>
1391
+
1392
+ ##### data_source_id: `Integer`<a id="data_source_id-integer"></a>
1393
+ #### 🌐 Endpoint<a id="🌐-endpoint"></a>
1394
+
1395
+ `/integrations/gitbook/spaces` `GET`
1396
+
1397
+ [πŸ”™ **Back to Table of Contents**](#table-of-contents)
1398
+
1399
+ ---
1400
+
1401
+
1402
+ ### `carbon.integrations.list_labels`<a id="carbonintegrationslist_labels"></a>
1403
+
1404
+ After connecting your Gmail account, you can use this endpoint to list all of your labels. User created labels
1405
+ will have the type "user" and Gmail's default labels will have the type "system"
1406
+
1407
+ #### πŸ› οΈ Usage<a id="πŸ› οΈ-usage"></a>
1408
+
1409
+ ```ruby
1410
+ result = carbon.integrations.list_labels
1411
+ p result
1412
+ ```
1413
+
1414
+ #### 🌐 Endpoint<a id="🌐-endpoint"></a>
1415
+
1416
+ `/integrations/gmail/user_labels` `GET`
1417
+
1418
+ [πŸ”™ **Back to Table of Contents**](#table-of-contents)
1419
+
1420
+ ---
1421
+
1422
+
1423
+ ### `carbon.integrations.sync_confluence`<a id="carbonintegrationssync_confluence"></a>
1424
+
1425
+ After listing pages in a user's Confluence account, the set of selected page `ids` and the
1426
+ connected account's `data_source_id` can be passed into this endpoint to sync them into
1427
+ Carbon. Additional parameters listed below can be used to associate data to the selected
1428
+ pages or alter the behavior of the sync.
1429
+
1430
+ #### πŸ› οΈ Usage<a id="πŸ› οΈ-usage"></a>
1431
+
1432
+ ```ruby
1433
+ result = carbon.integrations.sync_confluence(
1434
+ data_source_id: 1,
1435
+ ids: [
1436
+ "string_example"
1437
+ ],
1438
+ tags: {},
1439
+ chunk_size: 1500,
1440
+ chunk_overlap: 20,
1441
+ skip_embedding_generation: false,
1442
+ embedding_model: "OPENAI",
1443
+ generate_sparse_vectors: false,
1444
+ prepend_filename_to_chunks: false,
1445
+ max_items_per_chunk: 1,
1446
+ )
1447
+ p result
1448
+ ```
1449
+
1450
+ #### βš™οΈ Parameters<a id="βš™οΈ-parameters"></a>
1451
+
1452
+ ##### data_source_id: `Integer`<a id="data_source_id-integer"></a>
1453
+ ##### ids: Array<`String`><a id="ids-array"></a>
1454
+ ##### tags: `Object`<a id="tags-object"></a>
1455
+ ##### chunk_size: `Integer`<a id="chunk_size-integer"></a>
1456
+ ##### chunk_overlap: `Integer`<a id="chunk_overlap-integer"></a>
1457
+ ##### skip_embedding_generation: `Boolean`<a id="skip_embedding_generation-boolean"></a>
1458
+ ##### embedding_model: [`EmbeddingGeneratorsNullable`](./lib/carbon_ruby_sdk/models/embedding_generators_nullable.rb)<a id="embedding_model-embeddinggeneratorsnullablelibcarbon_ruby_sdkmodelsembedding_generators_nullablerb"></a>
1459
+ ##### generate_sparse_vectors: `Boolean`<a id="generate_sparse_vectors-boolean"></a>
1460
+ ##### prepend_filename_to_chunks: `Boolean`<a id="prepend_filename_to_chunks-boolean"></a>
1461
+ ##### max_items_per_chunk: `Integer`<a id="max_items_per_chunk-integer"></a>
1462
+ #### πŸ”„ Return<a id="πŸ”„-return"></a>
1463
+
1464
+ [GenericSuccessResponse](./lib/carbon_ruby_sdk/models/generic_success_response.rb)
1465
+
1466
+ #### 🌐 Endpoint<a id="🌐-endpoint"></a>
1467
+
1468
+ `/integrations/confluence/sync` `POST`
1469
+
1470
+ [πŸ”™ **Back to Table of Contents**](#table-of-contents)
1471
+
1472
+ ---
1473
+
1474
+
1475
+ ### `carbon.integrations.sync_data_source_items`<a id="carbonintegrationssync_data_source_items"></a>
1476
+
1477
+ Sync Data Source Items
1478
+
1479
+ #### πŸ› οΈ Usage<a id="πŸ› οΈ-usage"></a>
1480
+
1481
+ ```ruby
1482
+ result = carbon.integrations.sync_data_source_items(
1483
+ data_source_id: 1,
1484
+ )
1485
+ p result
1486
+ ```
1487
+
1488
+ #### βš™οΈ Parameters<a id="βš™οΈ-parameters"></a>
1489
+
1490
+ ##### data_source_id: `Integer`<a id="data_source_id-integer"></a>
1491
+ #### πŸ”„ Return<a id="πŸ”„-return"></a>
1492
+
1493
+ [OrganizationUserDataSourceAPI](./lib/carbon_ruby_sdk/models/organization_user_data_source_api.rb)
1494
+
1495
+ #### 🌐 Endpoint<a id="🌐-endpoint"></a>
1496
+
1497
+ `/integrations/items/sync` `POST`
1498
+
1499
+ [πŸ”™ **Back to Table of Contents**](#table-of-contents)
1500
+
1501
+ ---
1502
+
1503
+
1504
+ ### `carbon.integrations.sync_files`<a id="carbonintegrationssync_files"></a>
1505
+
1506
+ Sync Files
1507
+
1508
+ #### πŸ› οΈ Usage<a id="πŸ› οΈ-usage"></a>
1509
+
1510
+ ```ruby
1511
+ result = carbon.integrations.sync_files(
1512
+ data_source_id: 1,
1513
+ ids: [
1514
+ "string_example"
1515
+ ],
1516
+ tags: {},
1517
+ chunk_size: 1500,
1518
+ chunk_overlap: 20,
1519
+ skip_embedding_generation: false,
1520
+ embedding_model: "OPENAI",
1521
+ generate_sparse_vectors: false,
1522
+ prepend_filename_to_chunks: false,
1523
+ max_items_per_chunk: 1,
1524
+ )
1525
+ p result
1526
+ ```
1527
+
1528
+ #### βš™οΈ Parameters<a id="βš™οΈ-parameters"></a>
1529
+
1530
+ ##### data_source_id: `Integer`<a id="data_source_id-integer"></a>
1531
+ ##### ids: Array<`String`><a id="ids-array"></a>
1532
+ ##### tags: `Object`<a id="tags-object"></a>
1533
+ ##### chunk_size: `Integer`<a id="chunk_size-integer"></a>
1534
+ ##### chunk_overlap: `Integer`<a id="chunk_overlap-integer"></a>
1535
+ ##### skip_embedding_generation: `Boolean`<a id="skip_embedding_generation-boolean"></a>
1536
+ ##### embedding_model: [`EmbeddingGeneratorsNullable`](./lib/carbon_ruby_sdk/models/embedding_generators_nullable.rb)<a id="embedding_model-embeddinggeneratorsnullablelibcarbon_ruby_sdkmodelsembedding_generators_nullablerb"></a>
1537
+ ##### generate_sparse_vectors: `Boolean`<a id="generate_sparse_vectors-boolean"></a>
1538
+ ##### prepend_filename_to_chunks: `Boolean`<a id="prepend_filename_to_chunks-boolean"></a>
1539
+ ##### max_items_per_chunk: `Integer`<a id="max_items_per_chunk-integer"></a>
1540
+ #### πŸ”„ Return<a id="πŸ”„-return"></a>
1541
+
1542
+ [GenericSuccessResponse](./lib/carbon_ruby_sdk/models/generic_success_response.rb)
1543
+
1544
+ #### 🌐 Endpoint<a id="🌐-endpoint"></a>
1545
+
1546
+ `/integrations/files/sync` `POST`
1547
+
1548
+ [πŸ”™ **Back to Table of Contents**](#table-of-contents)
1549
+
1550
+ ---
1551
+
1552
+
1553
+ ### `carbon.integrations.sync_gitbook`<a id="carbonintegrationssync_gitbook"></a>
1554
+
1555
+ You can sync upto 20 Gitbook spaces at a time using this endpoint. Additional parameters below can be used to associate
1556
+ data with the synced pages or modify the sync behavior.
1557
+
1558
+ #### πŸ› οΈ Usage<a id="πŸ› οΈ-usage"></a>
1559
+
1560
+ ```ruby
1561
+ result = carbon.integrations.sync_gitbook(
1562
+ space_ids: [
1563
+ "string_example"
1564
+ ],
1565
+ data_source_id: 1,
1566
+ tags: {},
1567
+ chunk_size: 1500,
1568
+ chunk_overlap: 20,
1569
+ skip_embedding_generation: false,
1570
+ embedding_model: "OPENAI",
1571
+ generate_sparse_vectors: false,
1572
+ prepend_filename_to_chunks: false,
1573
+ )
1574
+ p result
1575
+ ```
1576
+
1577
+ #### βš™οΈ Parameters<a id="βš™οΈ-parameters"></a>
1578
+
1579
+ ##### space_ids: Array<`String`><a id="space_ids-array"></a>
1580
+ ##### data_source_id: `Integer`<a id="data_source_id-integer"></a>
1581
+ ##### tags: `Object`<a id="tags-object"></a>
1582
+ ##### chunk_size: `Integer`<a id="chunk_size-integer"></a>
1583
+ ##### chunk_overlap: `Integer`<a id="chunk_overlap-integer"></a>
1584
+ ##### skip_embedding_generation: `Boolean`<a id="skip_embedding_generation-boolean"></a>
1585
+ ##### embedding_model: [`EmbeddingGenerators`](./lib/carbon_ruby_sdk/models/embedding_generators.rb)<a id="embedding_model-embeddinggeneratorslibcarbon_ruby_sdkmodelsembedding_generatorsrb"></a>
1586
+ ##### generate_sparse_vectors: `Boolean`<a id="generate_sparse_vectors-boolean"></a>
1587
+ ##### prepend_filename_to_chunks: `Boolean`<a id="prepend_filename_to_chunks-boolean"></a>
1588
+ #### 🌐 Endpoint<a id="🌐-endpoint"></a>
1589
+
1590
+ `/integrations/gitbook/sync` `POST`
1591
+
1592
+ [πŸ”™ **Back to Table of Contents**](#table-of-contents)
1593
+
1594
+ ---
1595
+
1596
+
1597
+ ### `carbon.integrations.sync_gmail`<a id="carbonintegrationssync_gmail"></a>
1598
+
1599
+ Once you have successfully connected your gmail account, you can choose which emails to sync with us
1600
+ using the filters parameter. Filters is a JSON object with key value pairs. It also supports AND and OR operations.
1601
+ For now, we support a limited set of keys listed below.
1602
+
1603
+ <b>label</b>: Inbuilt Gmail labels, for example "Important" or a custom label you created.
1604
+ <b>after</b> or <b>before</b>: A date in YYYY/mm/dd format (example 2023/12/31). Gets emails after/before a certain date.
1605
+ You can also use them in combination to get emails from a certain period.
1606
+ <b>is</b>: Can have the following values - starred, important, snoozed, and unread
1607
+
1608
+ Using keys or values outside of the specified values can lead to unexpected behaviour.
1609
+
1610
+ An example of a basic query with filters can be
1611
+ ```json
1612
+ {
1613
+ "filters": {
1614
+ "key": "label",
1615
+ "value": "Test"
1616
+ }
1617
+ }
1618
+ ```
1619
+ Which will list all emails that have the label "Test".
1620
+
1621
+ You can use AND and OR operation in the following way:
1622
+ ```json
1623
+ {
1624
+ "filters": {
1625
+ "AND": [
1626
+ {
1627
+ "key": "after",
1628
+ "value": "2024/01/07"
1629
+ },
1630
+ {
1631
+ "OR": [
1632
+ {
1633
+ "key": "label",
1634
+ "value": "Personal"
1635
+ },
1636
+ {
1637
+ "key": "is",
1638
+ "value": "starred"
1639
+ }
1640
+ ]
1641
+ }
1642
+ ]
1643
+ }
1644
+ }
1645
+ ```
1646
+ This will return emails after 7th of Jan that are either starred or have the label "Personal".
1647
+ Note that this is the highest level of nesting we support, i.e. you can't add more AND/OR filters within the OR filter
1648
+ in the above example.
1649
+
1650
+ #### πŸ› οΈ Usage<a id="πŸ› οΈ-usage"></a>
1651
+
1652
+ ```ruby
1653
+ result = carbon.integrations.sync_gmail(
1654
+ filters: {},
1655
+ tags: {},
1656
+ chunk_size: 1500,
1657
+ chunk_overlap: 20,
1658
+ skip_embedding_generation: false,
1659
+ embedding_model: "OPENAI",
1660
+ generate_sparse_vectors: false,
1661
+ prepend_filename_to_chunks: false,
1662
+ )
1663
+ p result
1664
+ ```
1665
+
1666
+ #### βš™οΈ Parameters<a id="βš™οΈ-parameters"></a>
1667
+
1668
+ ##### filters: `Object`<a id="filters-object"></a>
1669
+ ##### tags: `Object`<a id="tags-object"></a>
1670
+ ##### chunk_size: `Integer`<a id="chunk_size-integer"></a>
1671
+ ##### chunk_overlap: `Integer`<a id="chunk_overlap-integer"></a>
1672
+ ##### skip_embedding_generation: `Boolean`<a id="skip_embedding_generation-boolean"></a>
1673
+ ##### embedding_model: [`EmbeddingGenerators`](./lib/carbon_ruby_sdk/models/embedding_generators.rb)<a id="embedding_model-embeddinggeneratorslibcarbon_ruby_sdkmodelsembedding_generatorsrb"></a>
1674
+ ##### generate_sparse_vectors: `Boolean`<a id="generate_sparse_vectors-boolean"></a>
1675
+ ##### prepend_filename_to_chunks: `Boolean`<a id="prepend_filename_to_chunks-boolean"></a>
1676
+ #### πŸ”„ Return<a id="πŸ”„-return"></a>
1677
+
1678
+ [GenericSuccessResponse](./lib/carbon_ruby_sdk/models/generic_success_response.rb)
1679
+
1680
+ #### 🌐 Endpoint<a id="🌐-endpoint"></a>
1681
+
1682
+ `/integrations/gmail/sync` `POST`
1683
+
1684
+ [πŸ”™ **Back to Table of Contents**](#table-of-contents)
1685
+
1686
+ ---
1687
+
1688
+
1689
+ ### `carbon.integrations.sync_outlook`<a id="carbonintegrationssync_outlook"></a>
1690
+
1691
+ Once you have successfully connected your Outlook account, you can choose which emails to sync with us
1692
+ using the filters and folder parameter. "folder" should be the folder you want to sync from Outlook. By default
1693
+ we get messages from your inbox folder.
1694
+ Filters is a JSON object with key value pairs. It also supports AND and OR operations.
1695
+ For now, we support a limited set of keys listed below.
1696
+
1697
+ <b>category</b>: Custom categories that you created in Outlook.
1698
+ <b>after</b> or <b>before</b>: A date in YYYY/mm/dd format (example 2023/12/31). Gets emails after/before a certain date. You can also use them in combination to get emails from a certain period.
1699
+ <b>is</b>: Can have the following values: flagged
1700
+
1701
+ An example of a basic query with filters can be
1702
+ ```json
1703
+ {
1704
+ "filters": {
1705
+ "key": "category",
1706
+ "value": "Test"
1707
+ }
1708
+ }
1709
+ ```
1710
+ Which will list all emails that have the category "Test".
1711
+
1712
+ Specifying a custom folder in the same query
1713
+ ```json
1714
+ {
1715
+ "folder": "Folder Name",
1716
+ "filters": {
1717
+ "key": "category",
1718
+ "value": "Test"
1719
+ }
1720
+ }
1721
+ ```
1722
+
1723
+ You can use AND and OR operation in the following way:
1724
+ ```json
1725
+ {
1726
+ "filters": {
1727
+ "AND": [
1728
+ {
1729
+ "key": "after",
1730
+ "value": "2024/01/07"
1731
+ },
1732
+ {
1733
+ "OR": [
1734
+ {
1735
+ "key": "category",
1736
+ "value": "Personal"
1737
+ },
1738
+ {
1739
+ "key": "category",
1740
+ "value": "Test"
1741
+ },
1742
+ ]
1743
+ }
1744
+ ]
1745
+ }
1746
+ }
1747
+ ```
1748
+ This will return emails after 7th of Jan that have either Personal or Test as category.
1749
+ Note that this is the highest level of nesting we support, i.e. you can't add more AND/OR filters within the OR filter
1750
+ in the above example.
1751
+
1752
+ #### πŸ› οΈ Usage<a id="πŸ› οΈ-usage"></a>
1753
+
1754
+ ```ruby
1755
+ result = carbon.integrations.sync_outlook(
1756
+ filters: {},
1757
+ tags: {},
1758
+ folder: "Inbox",
1759
+ chunk_size: 1500,
1760
+ chunk_overlap: 20,
1761
+ skip_embedding_generation: false,
1762
+ embedding_model: "OPENAI",
1763
+ generate_sparse_vectors: false,
1764
+ prepend_filename_to_chunks: false,
1765
+ )
1766
+ p result
1767
+ ```
1768
+
1769
+ #### βš™οΈ Parameters<a id="βš™οΈ-parameters"></a>
1770
+
1771
+ ##### filters: `Object`<a id="filters-object"></a>
1772
+ ##### tags: `Object`<a id="tags-object"></a>
1773
+ ##### folder: `String`<a id="folder-string"></a>
1774
+ ##### chunk_size: `Integer`<a id="chunk_size-integer"></a>
1775
+ ##### chunk_overlap: `Integer`<a id="chunk_overlap-integer"></a>
1776
+ ##### skip_embedding_generation: `Boolean`<a id="skip_embedding_generation-boolean"></a>
1777
+ ##### embedding_model: [`EmbeddingGenerators`](./lib/carbon_ruby_sdk/models/embedding_generators.rb)<a id="embedding_model-embeddinggeneratorslibcarbon_ruby_sdkmodelsembedding_generatorsrb"></a>
1778
+ ##### generate_sparse_vectors: `Boolean`<a id="generate_sparse_vectors-boolean"></a>
1779
+ ##### prepend_filename_to_chunks: `Boolean`<a id="prepend_filename_to_chunks-boolean"></a>
1780
+ #### πŸ”„ Return<a id="πŸ”„-return"></a>
1781
+
1782
+ [GenericSuccessResponse](./lib/carbon_ruby_sdk/models/generic_success_response.rb)
1783
+
1784
+ #### 🌐 Endpoint<a id="🌐-endpoint"></a>
1785
+
1786
+ `/integrations/outlook/sync` `POST`
1787
+
1788
+ [πŸ”™ **Back to Table of Contents**](#table-of-contents)
1789
+
1790
+ ---
1791
+
1792
+
1793
+ ### `carbon.integrations.sync_rss_feed`<a id="carbonintegrationssync_rss_feed"></a>
1794
+
1795
+ Rss Feed
1796
+
1797
+ #### πŸ› οΈ Usage<a id="πŸ› οΈ-usage"></a>
1798
+
1799
+ ```ruby
1800
+ result = carbon.integrations.sync_rss_feed(
1801
+ url: "string_example",
1802
+ tags: {},
1803
+ chunk_size: 1500,
1804
+ chunk_overlap: 20,
1805
+ skip_embedding_generation: false,
1806
+ embedding_model: "OPENAI",
1807
+ generate_sparse_vectors: false,
1808
+ prepend_filename_to_chunks: false,
1809
+ )
1810
+ p result
1811
+ ```
1812
+
1813
+ #### βš™οΈ Parameters<a id="βš™οΈ-parameters"></a>
1814
+
1815
+ ##### url: `String`<a id="url-string"></a>
1816
+ ##### tags: `Object`<a id="tags-object"></a>
1817
+ ##### chunk_size: `Integer`<a id="chunk_size-integer"></a>
1818
+ ##### chunk_overlap: `Integer`<a id="chunk_overlap-integer"></a>
1819
+ ##### skip_embedding_generation: `Boolean`<a id="skip_embedding_generation-boolean"></a>
1820
+ ##### embedding_model: [`EmbeddingGenerators`](./lib/carbon_ruby_sdk/models/embedding_generators.rb)<a id="embedding_model-embeddinggeneratorslibcarbon_ruby_sdkmodelsembedding_generatorsrb"></a>
1821
+ ##### generate_sparse_vectors: `Boolean`<a id="generate_sparse_vectors-boolean"></a>
1822
+ ##### prepend_filename_to_chunks: `Boolean`<a id="prepend_filename_to_chunks-boolean"></a>
1823
+ #### πŸ”„ Return<a id="πŸ”„-return"></a>
1824
+
1825
+ [GenericSuccessResponse](./lib/carbon_ruby_sdk/models/generic_success_response.rb)
1826
+
1827
+ #### 🌐 Endpoint<a id="🌐-endpoint"></a>
1828
+
1829
+ `/integrations/rss_feed` `POST`
1830
+
1831
+ [πŸ”™ **Back to Table of Contents**](#table-of-contents)
1832
+
1833
+ ---
1834
+
1835
+
1836
+ ### `carbon.integrations.sync_s3_files`<a id="carbonintegrationssync_s3_files"></a>
1837
+
1838
+ After optionally loading the items via /integrations/items/sync and integrations/items/list, use the bucket name
1839
+ and object key as the ID in this endpoint to sync them into Carbon. Additional parameters below can associate
1840
+ data with the selected items or modify the sync behavior
1841
+
1842
+ #### πŸ› οΈ Usage<a id="πŸ› οΈ-usage"></a>
1843
+
1844
+ ```ruby
1845
+ result = carbon.integrations.sync_s3_files(
1846
+ ids: [
1847
+ {
1848
+ }
1849
+ ],
1850
+ tags: {},
1851
+ chunk_size: 1500,
1852
+ chunk_overlap: 20,
1853
+ skip_embedding_generation: false,
1854
+ embedding_model: "OPENAI",
1855
+ generate_sparse_vectors: false,
1856
+ prepend_filename_to_chunks: false,
1857
+ max_items_per_chunk: 1,
1858
+ )
1859
+ p result
1860
+ ```
1861
+
1862
+ #### βš™οΈ Parameters<a id="βš™οΈ-parameters"></a>
1863
+
1864
+ ##### ids: Array<[`S3GetFileInput`](./lib/carbon_ruby_sdk/models/s3_get_file_input.rb)><a id="ids-array"></a>
1865
+ ##### tags: `Object`<a id="tags-object"></a>
1866
+ ##### chunk_size: `Integer`<a id="chunk_size-integer"></a>
1867
+ ##### chunk_overlap: `Integer`<a id="chunk_overlap-integer"></a>
1868
+ ##### skip_embedding_generation: `Boolean`<a id="skip_embedding_generation-boolean"></a>
1869
+ ##### embedding_model: [`EmbeddingGenerators`](./lib/carbon_ruby_sdk/models/embedding_generators.rb)<a id="embedding_model-embeddinggeneratorslibcarbon_ruby_sdkmodelsembedding_generatorsrb"></a>
1870
+ ##### generate_sparse_vectors: `Boolean`<a id="generate_sparse_vectors-boolean"></a>
1871
+ ##### prepend_filename_to_chunks: `Boolean`<a id="prepend_filename_to_chunks-boolean"></a>
1872
+ ##### max_items_per_chunk: `Integer`<a id="max_items_per_chunk-integer"></a>
1873
+ #### πŸ”„ Return<a id="πŸ”„-return"></a>
1874
+
1875
+ [GenericSuccessResponse](./lib/carbon_ruby_sdk/models/generic_success_response.rb)
1876
+
1877
+ #### 🌐 Endpoint<a id="🌐-endpoint"></a>
1878
+
1879
+ `/integrations/s3/files` `POST`
1880
+
1881
+ [πŸ”™ **Back to Table of Contents**](#table-of-contents)
1882
+
1883
+ ---
1884
+
1885
+
1886
+ ### `carbon.organizations.get`<a id="carbonorganizationsget"></a>
1887
+
1888
+ Get Organization
1889
+
1890
+ #### πŸ› οΈ Usage<a id="πŸ› οΈ-usage"></a>
1891
+
1892
+ ```ruby
1893
+ result = carbon.organizations.get
1894
+ p result
1895
+ ```
1896
+
1897
+ #### πŸ”„ Return<a id="πŸ”„-return"></a>
1898
+
1899
+ [OrganizationResponse](./lib/carbon_ruby_sdk/models/organization_response.rb)
1900
+
1901
+ #### 🌐 Endpoint<a id="🌐-endpoint"></a>
1902
+
1903
+ `/organization` `GET`
1904
+
1905
+ [πŸ”™ **Back to Table of Contents**](#table-of-contents)
1906
+
1907
+ ---
1908
+
1909
+
1910
+ ### `carbon.users.get`<a id="carbonusersget"></a>
1911
+
1912
+ User Endpoint
1913
+
1914
+ #### πŸ› οΈ Usage<a id="πŸ› οΈ-usage"></a>
1915
+
1916
+ ```ruby
1917
+ result = carbon.users.get(
1918
+ customer_id: "string_example",
1919
+ )
1920
+ p result
1921
+ ```
1922
+
1923
+ #### βš™οΈ Parameters<a id="βš™οΈ-parameters"></a>
1924
+
1925
+ ##### customer_id: `String`<a id="customer_id-string"></a>
1926
+ #### πŸ”„ Return<a id="πŸ”„-return"></a>
1927
+
1928
+ [UserResponse](./lib/carbon_ruby_sdk/models/user_response.rb)
1929
+
1930
+ #### 🌐 Endpoint<a id="🌐-endpoint"></a>
1931
+
1932
+ `/user` `POST`
1933
+
1934
+ [πŸ”™ **Back to Table of Contents**](#table-of-contents)
1935
+
1936
+ ---
1937
+
1938
+
1939
+ ### `carbon.users.toggle_user_features`<a id="carbonuserstoggle_user_features"></a>
1940
+
1941
+ Toggle User Features
1942
+
1943
+ #### πŸ› οΈ Usage<a id="πŸ› οΈ-usage"></a>
1944
+
1945
+ ```ruby
1946
+ result = carbon.users.toggle_user_features(
1947
+ configuration_key_name: "string_example",
1948
+ value: {},
1949
+ )
1950
+ p result
1951
+ ```
1952
+
1953
+ #### βš™οΈ Parameters<a id="βš™οΈ-parameters"></a>
1954
+
1955
+ ##### configuration_key_name: `String`<a id="configuration_key_name-string"></a>
1956
+ ##### value: `Object`<a id="value-object"></a>
1957
+ #### πŸ”„ Return<a id="πŸ”„-return"></a>
1958
+
1959
+ [GenericSuccessResponse](./lib/carbon_ruby_sdk/models/generic_success_response.rb)
1960
+
1961
+ #### 🌐 Endpoint<a id="🌐-endpoint"></a>
1962
+
1963
+ `/modify_user_configuration` `POST`
1964
+
1965
+ [πŸ”™ **Back to Table of Contents**](#table-of-contents)
1966
+
1967
+ ---
1968
+
1969
+
1970
+ ### `carbon.utilities.fetch_urls`<a id="carbonutilitiesfetch_urls"></a>
1971
+
1972
+ Extracts all URLs from a webpage.
1973
+
1974
+ Args:
1975
+ url (str): URL of the webpage
1976
+
1977
+ Returns:
1978
+ FetchURLsResponse: A response object with a list of URLs extracted from the webpage and the webpage content.
1979
+
1980
+ #### πŸ› οΈ Usage<a id="πŸ› οΈ-usage"></a>
1981
+
1982
+ ```ruby
1983
+ result = carbon.utilities.fetch_urls(
1984
+ url: "url_example",
1985
+ )
1986
+ p result
1987
+ ```
1988
+
1989
+ #### βš™οΈ Parameters<a id="βš™οΈ-parameters"></a>
1990
+
1991
+ ##### url: `String`<a id="url-string"></a>
1992
+ #### πŸ”„ Return<a id="πŸ”„-return"></a>
1993
+
1994
+ [FetchURLsResponse](./lib/carbon_ruby_sdk/models/fetch_urls_response.rb)
1995
+
1996
+ #### 🌐 Endpoint<a id="🌐-endpoint"></a>
1997
+
1998
+ `/fetch_urls` `GET`
1999
+
2000
+ [πŸ”™ **Back to Table of Contents**](#table-of-contents)
2001
+
2002
+ ---
2003
+
2004
+
2005
+ ### `carbon.utilities.fetch_youtube_transcripts`<a id="carbonutilitiesfetch_youtube_transcripts"></a>
2006
+
2007
+ Fetches english transcripts from YouTube videos.
2008
+
2009
+ Args:
2010
+ id (str): The ID of the YouTube video.
2011
+ raw (bool): Whether to return the raw transcript or not. Defaults to False.
2012
+
2013
+ Returns:
2014
+ dict: A dictionary with the transcript of the YouTube video.
2015
+
2016
+ #### πŸ› οΈ Usage<a id="πŸ› οΈ-usage"></a>
2017
+
2018
+ ```ruby
2019
+ result = carbon.utilities.fetch_youtube_transcripts(
2020
+ id: "id_example",
2021
+ raw: false,
2022
+ )
2023
+ p result
2024
+ ```
2025
+
2026
+ #### βš™οΈ Parameters<a id="βš™οΈ-parameters"></a>
2027
+
2028
+ ##### id: `String`<a id="id-string"></a>
2029
+ ##### raw: `Boolean`<a id="raw-boolean"></a>
2030
+ #### πŸ”„ Return<a id="πŸ”„-return"></a>
2031
+
2032
+ [YoutubeTranscriptResponse](./lib/carbon_ruby_sdk/models/youtube_transcript_response.rb)
2033
+
2034
+ #### 🌐 Endpoint<a id="🌐-endpoint"></a>
2035
+
2036
+ `/fetch_youtube_transcript` `GET`
2037
+
2038
+ [πŸ”™ **Back to Table of Contents**](#table-of-contents)
2039
+
2040
+ ---
2041
+
2042
+
2043
+ ### `carbon.utilities.process_sitemap`<a id="carbonutilitiesprocess_sitemap"></a>
2044
+
2045
+ Retrieves all URLs from a sitemap, which can subsequently be utilized with our `web_scrape` endpoint.
2046
+
2047
+ <!--Args:
2048
+ url (str): URL of the sitemap
2049
+
2050
+ Returns:
2051
+ dict: A dictionary with a list of URLs extracted from the sitemap.-->
2052
+
2053
+ #### πŸ› οΈ Usage<a id="πŸ› οΈ-usage"></a>
2054
+
2055
+ ```ruby
2056
+ result = carbon.utilities.process_sitemap(
2057
+ url: "url_example",
2058
+ )
2059
+ p result
2060
+ ```
2061
+
2062
+ #### βš™οΈ Parameters<a id="βš™οΈ-parameters"></a>
2063
+
2064
+ ##### url: `String`<a id="url-string"></a>
2065
+ #### 🌐 Endpoint<a id="🌐-endpoint"></a>
2066
+
2067
+ `/process_sitemap` `GET`
2068
+
2069
+ [πŸ”™ **Back to Table of Contents**](#table-of-contents)
2070
+
2071
+ ---
2072
+
2073
+
2074
+ ### `carbon.utilities.scrape_sitemap`<a id="carbonutilitiesscrape_sitemap"></a>
2075
+
2076
+ Extracts all URLs from a sitemap and performs a web scrape on each of them.
2077
+
2078
+ Args:
2079
+ sitemap_url (str): URL of the sitemap
2080
+
2081
+ Returns:
2082
+ dict: A response object with the status of the scraping job message.-->
2083
+
2084
+ #### πŸ› οΈ Usage<a id="πŸ› οΈ-usage"></a>
2085
+
2086
+ ```ruby
2087
+ result = carbon.utilities.scrape_sitemap(
2088
+ url: "string_example",
2089
+ tags: {
2090
+ "key": "string_example",
2091
+ },
2092
+ max_pages_to_scrape: 1,
2093
+ chunk_size: 1500,
2094
+ chunk_overlap: 20,
2095
+ skip_embedding_generation: false,
2096
+ enable_auto_sync: false,
2097
+ generate_sparse_vectors: false,
2098
+ prepend_filename_to_chunks: false,
2099
+ html_tags_to_skip: [],
2100
+ css_classes_to_skip: [],
2101
+ css_selectors_to_skip: [],
2102
+ embedding_model: "OPENAI",
2103
+ )
2104
+ p result
2105
+ ```
2106
+
2107
+ #### βš™οΈ Parameters<a id="βš™οΈ-parameters"></a>
2108
+
2109
+ ##### url: `String`<a id="url-string"></a>
2110
+ ##### tags: Hash<string, [`Tags1`](./lib/carbon_ruby_sdk/models/tags1.rb)><a id="tags-hash"></a>
2111
+ ##### max_pages_to_scrape: `Integer`<a id="max_pages_to_scrape-integer"></a>
2112
+ ##### chunk_size: `Integer`<a id="chunk_size-integer"></a>
2113
+ ##### chunk_overlap: `Integer`<a id="chunk_overlap-integer"></a>
2114
+ ##### skip_embedding_generation: `Boolean`<a id="skip_embedding_generation-boolean"></a>
2115
+ ##### enable_auto_sync: `Boolean`<a id="enable_auto_sync-boolean"></a>
2116
+ ##### generate_sparse_vectors: `Boolean`<a id="generate_sparse_vectors-boolean"></a>
2117
+ ##### prepend_filename_to_chunks: `Boolean`<a id="prepend_filename_to_chunks-boolean"></a>
2118
+ ##### html_tags_to_skip: Array<`String`><a id="html_tags_to_skip-array"></a>
2119
+ ##### css_classes_to_skip: Array<`String`><a id="css_classes_to_skip-array"></a>
2120
+ ##### css_selectors_to_skip: Array<`String`><a id="css_selectors_to_skip-array"></a>
2121
+ ##### embedding_model: [`EmbeddingGenerators`](./lib/carbon_ruby_sdk/models/embedding_generators.rb)<a id="embedding_model-embeddinggeneratorslibcarbon_ruby_sdkmodelsembedding_generatorsrb"></a>
2122
+ #### 🌐 Endpoint<a id="🌐-endpoint"></a>
2123
+
2124
+ `/scrape_sitemap` `POST`
2125
+
2126
+ [πŸ”™ **Back to Table of Contents**](#table-of-contents)
2127
+
2128
+ ---
2129
+
2130
+
2131
+ ### `carbon.utilities.scrape_web`<a id="carbonutilitiesscrape_web"></a>
2132
+
2133
+ Conduct a web scrape on a given webpage URL. Our web scraper is fully compatible with JavaScript and supports recursion depth, enabling you to efficiently extract all content from the target website.
2134
+
2135
+ <!--Args:
2136
+ scraping_requests (List[WebscrapeRequest]): A list of WebscrapeRequest objects.
2137
+
2138
+
2139
+ Returns:
2140
+ dict: A response object with the status of the scraping job message.-->
2141
+
2142
+ #### πŸ› οΈ Usage<a id="πŸ› οΈ-usage"></a>
2143
+
2144
+ ```ruby
2145
+ result = carbon.utilities.scrape_web(
2146
+ body: [
2147
+ {
2148
+ "url" => "url_example",
2149
+ "recursion_depth" => 3,
2150
+ "max_pages_to_scrape" => 100,
2151
+ "chunk_size" => 1500,
2152
+ "chunk_overlap" => 20,
2153
+ "skip_embedding_generation" => false,
2154
+ "enable_auto_sync" => false,
2155
+ "generate_sparse_vectors" => false,
2156
+ "prepend_filename_to_chunks" => false,
2157
+ "html_tags_to_skip" => [],
2158
+ "css_classes_to_skip" => [],
2159
+ "css_selectors_to_skip" => [],
2160
+ "embedding_model" => "OPENAI",
2161
+ }
2162
+ ],
2163
+ )
2164
+ p result
2165
+ ```
2166
+
2167
+ #### βš™οΈ body<a id="βš™οΈ-body"></a>
2168
+
2169
+ Array<[`WebscrapeRequest`](./lib/carbon_ruby_sdk/models/webscrape_request.rb)>
2170
+ #### 🌐 Endpoint<a id="🌐-endpoint"></a>
2171
+
2172
+ `/web_scrape` `POST`
2173
+
2174
+ [πŸ”™ **Back to Table of Contents**](#table-of-contents)
2175
+
2176
+ ---
2177
+
2178
+
2179
+ ### `carbon.utilities.search_urls`<a id="carbonutilitiessearch_urls"></a>
2180
+
2181
+ Perform a web search and obtain a list of relevant URLs.
2182
+
2183
+ As an illustration, when you perform a search for β€œcontent related to MRNA,” you will receive a list of links such as the following:
2184
+
2185
+ - https://tomrenz.substack.com/p/mrna-and-why-it-matters
2186
+
2187
+ - https://www.statnews.com/2020/11/10/the-story-of-mrna-how-a-once-dismissed-idea-became-a-leading-technology-in-the-covid-vaccine-race/
2188
+
2189
+ - https://www.statnews.com/2022/11/16/covid-19-vaccines-were-a-success-but-mrna-still-has-a-delivery-problem/
2190
+
2191
+ - https://joomi.substack.com/p/were-still-being-misled-about-how
2192
+
2193
+ Subsequently, you can submit these links to the web_scrape endpoint in order to retrieve the content of the respective web pages.
2194
+
2195
+ Args:
2196
+ query (str): Query to search for
2197
+
2198
+ Returns:
2199
+ FetchURLsResponse: A response object with a list of URLs for a given search query.
2200
+
2201
+ #### πŸ› οΈ Usage<a id="πŸ› οΈ-usage"></a>
2202
+
2203
+ ```ruby
2204
+ result = carbon.utilities.search_urls(
2205
+ query: "query_example",
2206
+ )
2207
+ p result
2208
+ ```
2209
+
2210
+ #### βš™οΈ Parameters<a id="βš™οΈ-parameters"></a>
2211
+
2212
+ ##### query: `String`<a id="query-string"></a>
2213
+ #### πŸ”„ Return<a id="πŸ”„-return"></a>
2214
+
2215
+ [FetchURLsResponse](./lib/carbon_ruby_sdk/models/fetch_urls_response.rb)
2216
+
2217
+ #### 🌐 Endpoint<a id="🌐-endpoint"></a>
2218
+
2219
+ `/search_urls` `GET`
2220
+
2221
+ [πŸ”™ **Back to Table of Contents**](#table-of-contents)
2222
+
2223
+ ---
2224
+
2225
+
2226
+ ### `carbon.webhooks.add_url`<a id="carbonwebhooksadd_url"></a>
2227
+
2228
+ Add Webhook Url
2229
+
2230
+ #### πŸ› οΈ Usage<a id="πŸ› οΈ-usage"></a>
2231
+
2232
+ ```ruby
2233
+ result = carbon.webhooks.add_url(
2234
+ url: "string_example",
2235
+ )
2236
+ p result
2237
+ ```
2238
+
2239
+ #### βš™οΈ Parameters<a id="βš™οΈ-parameters"></a>
2240
+
2241
+ ##### url: `String`<a id="url-string"></a>
2242
+ #### πŸ”„ Return<a id="πŸ”„-return"></a>
2243
+
2244
+ [Webhook](./lib/carbon_ruby_sdk/models/webhook.rb)
2245
+
2246
+ #### 🌐 Endpoint<a id="🌐-endpoint"></a>
2247
+
2248
+ `/add_webhook` `POST`
2249
+
2250
+ [πŸ”™ **Back to Table of Contents**](#table-of-contents)
2251
+
2252
+ ---
2253
+
2254
+
2255
+ ### `carbon.webhooks.delete_url`<a id="carbonwebhooksdelete_url"></a>
2256
+
2257
+ Delete Webhook Url
2258
+
2259
+ #### πŸ› οΈ Usage<a id="πŸ› οΈ-usage"></a>
2260
+
2261
+ ```ruby
2262
+ result = carbon.webhooks.delete_url(
2263
+ webhook_id: 1,
2264
+ )
2265
+ p result
2266
+ ```
2267
+
2268
+ #### βš™οΈ Parameters<a id="βš™οΈ-parameters"></a>
2269
+
2270
+ ##### webhook_id: `Integer`<a id="webhook_id-integer"></a>
2271
+ #### πŸ”„ Return<a id="πŸ”„-return"></a>
2272
+
2273
+ [GenericSuccessResponse](./lib/carbon_ruby_sdk/models/generic_success_response.rb)
2274
+
2275
+ #### 🌐 Endpoint<a id="🌐-endpoint"></a>
2276
+
2277
+ `/delete_webhook/{webhook_id}` `DELETE`
2278
+
2279
+ [πŸ”™ **Back to Table of Contents**](#table-of-contents)
2280
+
2281
+ ---
2282
+
2283
+
2284
+ ### `carbon.webhooks.urls`<a id="carbonwebhooksurls"></a>
2285
+
2286
+ Webhook Urls
2287
+
2288
+ #### πŸ› οΈ Usage<a id="πŸ› οΈ-usage"></a>
2289
+
2290
+ ```ruby
2291
+ result = carbon.webhooks.urls(
2292
+ pagination: {
2293
+ "limit" => 10,
2294
+ "offset" => 0,
2295
+ },
2296
+ order_by: "created_at",
2297
+ order_dir: "desc",
2298
+ filters: {
2299
+ "ids" => [],
2300
+ },
2301
+ )
2302
+ p result
2303
+ ```
2304
+
2305
+ #### βš™οΈ Parameters<a id="βš™οΈ-parameters"></a>
2306
+
2307
+ ##### pagination: [`Pagination`](./lib/carbon_ruby_sdk/models/pagination.rb)<a id="pagination-paginationlibcarbon_ruby_sdkmodelspaginationrb"></a>
2308
+ ##### order_by: [`WebhookOrderByColumns`](./lib/carbon_ruby_sdk/models/webhook_order_by_columns.rb)<a id="order_by-webhookorderbycolumnslibcarbon_ruby_sdkmodelswebhook_order_by_columnsrb"></a>
2309
+ ##### order_dir: [`OrderDir`](./lib/carbon_ruby_sdk/models/order_dir.rb)<a id="order_dir-orderdirlibcarbon_ruby_sdkmodelsorder_dirrb"></a>
2310
+ ##### filters: [`WebhookFilters`](./lib/carbon_ruby_sdk/models/webhook_filters.rb)<a id="filters-webhookfilterslibcarbon_ruby_sdkmodelswebhook_filtersrb"></a>
2311
+ #### πŸ”„ Return<a id="πŸ”„-return"></a>
2312
+
2313
+ [WebhookQueryResponse](./lib/carbon_ruby_sdk/models/webhook_query_response.rb)
2314
+
2315
+ #### 🌐 Endpoint<a id="🌐-endpoint"></a>
2316
+
2317
+ `/webhooks` `POST`
2318
+
2319
+ [πŸ”™ **Back to Table of Contents**](#table-of-contents)
2320
+
2321
+ ---
2322
+
2323
+
2324
+ ## Author<a id="author"></a>
2325
+ This TypeScript package is automatically generated by [Konfig](https://konfigthis.com)