carbon_ruby_sdk 0.1.26 → 0.1.27

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 4df15c006e45848696f32fa5cff53262a27cd3679d984728e3b03032bb20fb2d
4
- data.tar.gz: 3bb4f46ac23fcb9b560de22c539f6280c7cbc4d717ff7b762ecff53f3a953ca2
3
+ metadata.gz: 4ac9daf22135c068fcd84189709ef118201beb9d4eab590bf898a4026056e98c
4
+ data.tar.gz: 041716ceb046ef931db5d67446d7a44862af32197c41420c8167aec333e5d66c
5
5
  SHA512:
6
- metadata.gz: 561bd129472800a3028d531465beb98ba98794a2e813c477d72aa308c58128f9f912a1fc09a967aca5d9de0d16dc435d518ae3715c288707b5ea840f1be6082a
7
- data.tar.gz: 3dfa67d79380d9a687dccb456fbab1ce19422564c498eec958d4df186276d090754814224ad6bd20588e23b28adb3a80c2125d93ef2771d22d41a6e55c55afdb
6
+ metadata.gz: 555efe547b71f4c34487c10e6d648273f8222fcf4aae49c3c0764734716aef951ec18e87e8dfd7060977668ccc20036c4a13a84b3f5baa7e2bb5a2afebfb3cbb
7
+ data.tar.gz: 147ab93158e1bd2d89175f692c2512bd55f88cb16e8437675fbf3e26bf4ce1a365fd665715241f0dec61cb0252aefcbb42d69edc13d88cf36c3f8d0b87c0edc4
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- carbon_ruby_sdk (0.1.25)
4
+ carbon_ruby_sdk (0.1.26)
5
5
  faraday (>= 1.0.1, < 3.0)
6
6
  faraday-multipart (~> 1.0, >= 1.0.4)
7
7
 
data/README.md CHANGED
@@ -6,7 +6,7 @@
6
6
 
7
7
  Connect external data to LLMs, no matter the source.
8
8
 
9
- [![npm](https://img.shields.io/badge/gem-v0.1.26-blue)](https://rubygems.org/gems/carbon_ruby_sdk/versions/0.1.26)
9
+ [![npm](https://img.shields.io/badge/gem-v0.1.27-blue)](https://rubygems.org/gems/carbon_ruby_sdk/versions/0.1.27)
10
10
 
11
11
  </div>
12
12
 
@@ -84,7 +84,7 @@ Connect external data to LLMs, no matter the source.
84
84
  Add to Gemfile:
85
85
 
86
86
  ```ruby
87
- gem 'carbon_ruby_sdk', '~> 0.1.26'
87
+ gem 'carbon_ruby_sdk', '~> 0.1.27'
88
88
  ```
89
89
 
90
90
  ## Getting Started<a id="getting-started"></a>
@@ -1197,9 +1197,10 @@ result = carbon.integrations.connect_data_source(
1197
1197
  "prepend_filename_to_chunks" => false,
1198
1198
  "sync_files_on_connection" => true,
1199
1199
  "set_page_as_boundary" => false,
1200
- "request_id" => "875454df-996d-4d26-83e0-756af9628ed0",
1200
+ "request_id" => "b9a72b38-115a-4dd6-bad9-00185ae2333b",
1201
1201
  "enable_file_picker" => true,
1202
1202
  "sync_source_items" => true,
1203
+ "incremental_sync" => false,
1203
1204
  },
1204
1205
  )
1205
1206
  p result
@@ -1409,11 +1410,16 @@ result = carbon.integrations.get_oauth_url(
1409
1410
  set_page_as_boundary: false,
1410
1411
  data_source_id: 1,
1411
1412
  connecting_new_account: false,
1412
- request_id: "fc8dfd30-8e4c-4f40-acc5-f05b3cc961d2",
1413
+ request_id: "444e3f13-e490-4cc0-9cba-48957104083d",
1413
1414
  use_ocr: false,
1414
1415
  parse_pdf_tables_with_ocr: false,
1415
1416
  enable_file_picker: true,
1416
1417
  sync_source_items: true,
1418
+ incremental_sync: false,
1419
+ file_sync_config: {
1420
+ "file_types" => ["ARTICLE"],
1421
+ "sync_attachments" => false,
1422
+ },
1417
1423
  )
1418
1424
  p result
1419
1425
  ```
@@ -1463,12 +1469,18 @@ Enable OCR for files that support it. Supported formats: pdf
1463
1469
  ##### parse_pdf_tables_with_ocr: `Boolean`<a id="parse_pdf_tables_with_ocr-boolean"></a>
1464
1470
  ##### enable_file_picker: `Boolean`<a id="enable_file_picker-boolean"></a>
1465
1471
  Enable integration's file picker for sources that support it. Supported sources:
1466
- GOOGLE_DRIVE, ONEDRIVE, SHAREPOINT, DROPBOX, BOX
1472
+ BOX, SHAREPOINT, GOOGLE_DRIVE, DROPBOX, ONEDRIVE
1467
1473
 
1468
1474
  ##### sync_source_items: `Boolean`<a id="sync_source_items-boolean"></a>
1469
1475
  Enabling this flag will fetch all available content from the source to be listed
1470
1476
  via list items endpoint
1471
1477
 
1478
+ ##### incremental_sync: `Boolean`<a id="incremental_sync-boolean"></a>
1479
+ Only sync files if they have not already been synced or if the embedding
1480
+ properties have changed. This flag is currently supported by ONEDRIVE,
1481
+ GOOGLE_DRIVE, BOX, DROPBOX. It will be ignored for other data sources.
1482
+
1483
+ ##### file_sync_config: [`HelpdeskFileSyncConfigNullable`](./lib/carbon_ruby_sdk/models/helpdesk_file_sync_config_nullable.rb)<a id="file_sync_config-helpdeskfilesyncconfignullablelibcarbon_ruby_sdkmodelshelpdesk_file_sync_config_nullablerb"></a>
1472
1484
  #### 🔄 Return<a id="🔄-return"></a>
1473
1485
 
1474
1486
  [OuthURLResponse](./lib/carbon_ruby_sdk/models/outh_url_response.rb)
@@ -1719,9 +1731,10 @@ result = carbon.integrations.sync_confluence(
1719
1731
  prepend_filename_to_chunks: false,
1720
1732
  max_items_per_chunk: 1,
1721
1733
  set_page_as_boundary: false,
1722
- request_id: "2446df66-66dd-4ea3-b248-a416d886e087",
1734
+ request_id: "a5c6b913-12ce-4ae5-af61-694dd5c400fc",
1723
1735
  use_ocr: false,
1724
1736
  parse_pdf_tables_with_ocr: false,
1737
+ incremental_sync: false,
1725
1738
  )
1726
1739
  p result
1727
1740
  ```
@@ -1744,6 +1757,11 @@ Number of objects per chunk. For csv, tsv, xlsx, and json files only.
1744
1757
  ##### request_id: `String`<a id="request_id-string"></a>
1745
1758
  ##### use_ocr: `Boolean`<a id="use_ocr-boolean"></a>
1746
1759
  ##### parse_pdf_tables_with_ocr: `Boolean`<a id="parse_pdf_tables_with_ocr-boolean"></a>
1760
+ ##### incremental_sync: `Boolean`<a id="incremental_sync-boolean"></a>
1761
+ Only sync files if they have not already been synced or if the embedding
1762
+ properties have changed. This flag is currently supported by ONEDRIVE,
1763
+ GOOGLE_DRIVE, BOX, DROPBOX. It will be ignored for other data sources.
1764
+
1747
1765
  #### 🔄 Return<a id="🔄-return"></a>
1748
1766
 
1749
1767
  [GenericSuccessResponse](./lib/carbon_ruby_sdk/models/generic_success_response.rb)
@@ -1810,9 +1828,10 @@ result = carbon.integrations.sync_files(
1810
1828
  prepend_filename_to_chunks: false,
1811
1829
  max_items_per_chunk: 1,
1812
1830
  set_page_as_boundary: false,
1813
- request_id: "2446df66-66dd-4ea3-b248-a416d886e087",
1831
+ request_id: "a5c6b913-12ce-4ae5-af61-694dd5c400fc",
1814
1832
  use_ocr: false,
1815
1833
  parse_pdf_tables_with_ocr: false,
1834
+ incremental_sync: false,
1816
1835
  )
1817
1836
  p result
1818
1837
  ```
@@ -1835,6 +1854,11 @@ Number of objects per chunk. For csv, tsv, xlsx, and json files only.
1835
1854
  ##### request_id: `String`<a id="request_id-string"></a>
1836
1855
  ##### use_ocr: `Boolean`<a id="use_ocr-boolean"></a>
1837
1856
  ##### parse_pdf_tables_with_ocr: `Boolean`<a id="parse_pdf_tables_with_ocr-boolean"></a>
1857
+ ##### incremental_sync: `Boolean`<a id="incremental_sync-boolean"></a>
1858
+ Only sync files if they have not already been synced or if the embedding
1859
+ properties have changed. This flag is currently supported by ONEDRIVE,
1860
+ GOOGLE_DRIVE, BOX, DROPBOX. It will be ignored for other data sources.
1861
+
1838
1862
  #### 🔄 Return<a id="🔄-return"></a>
1839
1863
 
1840
1864
  [GenericSuccessResponse](./lib/carbon_ruby_sdk/models/generic_success_response.rb)
@@ -336,7 +336,7 @@ module Carbon
336
336
  return_type = opts[:debug_return_type] || 'DocumentResponseList'
337
337
 
338
338
  # auth_names
339
- auth_names = opts[:debug_auth_names] || ['accessToken', 'apiKey', 'customerId']
339
+ auth_names = opts[:debug_auth_names] || []
340
340
 
341
341
  new_options = opts.merge(
342
342
  :operation => :"EmbeddingsApi.get_documents",
@@ -557,11 +557,13 @@ module Carbon
557
557
  # @param request_id [String] This request id will be added to all files that get synced using the generated OAuth URL
558
558
  # @param use_ocr [Boolean] Enable OCR for files that support it. Supported formats: pdf
559
559
  # @param parse_pdf_tables_with_ocr [Boolean]
560
- # @param enable_file_picker [Boolean] Enable integration's file picker for sources that support it. Supported sources: GOOGLE_DRIVE, ONEDRIVE, SHAREPOINT, DROPBOX, BOX
560
+ # @param enable_file_picker [Boolean] Enable integration's file picker for sources that support it. Supported sources: BOX, SHAREPOINT, GOOGLE_DRIVE, DROPBOX, ONEDRIVE
561
561
  # @param sync_source_items [Boolean] Enabling this flag will fetch all available content from the source to be listed via list items endpoint
562
+ # @param incremental_sync [Boolean] Only sync files if they have not already been synced or if the embedding properties have changed. This flag is currently supported by ONEDRIVE, GOOGLE_DRIVE, BOX, DROPBOX. It will be ignored for other data sources.
563
+ # @param file_sync_config [HelpdeskFileSyncConfigNullable]
562
564
  # @param body [OAuthURLRequest]
563
565
  # @param [Hash] extra additional parameters to pass along through :header_params, :query_params, or parameter name
564
- def get_oauth_url(service:, tags: SENTINEL, scope: SENTINEL, chunk_size: 1500, chunk_overlap: 20, skip_embedding_generation: false, embedding_model: 'OPENAI', zendesk_subdomain: SENTINEL, microsoft_tenant: SENTINEL, sharepoint_site_name: SENTINEL, confluence_subdomain: SENTINEL, generate_sparse_vectors: false, prepend_filename_to_chunks: false, max_items_per_chunk: SENTINEL, salesforce_domain: SENTINEL, sync_files_on_connection: true, set_page_as_boundary: false, data_source_id: SENTINEL, connecting_new_account: false, request_id: 'fc8dfd30-8e4c-4f40-acc5-f05b3cc961d2', use_ocr: false, parse_pdf_tables_with_ocr: false, enable_file_picker: true, sync_source_items: true, extra: {})
566
+ def get_oauth_url(service:, tags: SENTINEL, scope: SENTINEL, chunk_size: 1500, chunk_overlap: 20, skip_embedding_generation: false, embedding_model: 'OPENAI', zendesk_subdomain: SENTINEL, microsoft_tenant: SENTINEL, sharepoint_site_name: SENTINEL, confluence_subdomain: SENTINEL, generate_sparse_vectors: false, prepend_filename_to_chunks: false, max_items_per_chunk: SENTINEL, salesforce_domain: SENTINEL, sync_files_on_connection: true, set_page_as_boundary: false, data_source_id: SENTINEL, connecting_new_account: false, request_id: '444e3f13-e490-4cc0-9cba-48957104083d', use_ocr: false, parse_pdf_tables_with_ocr: false, enable_file_picker: true, sync_source_items: true, incremental_sync: false, file_sync_config: SENTINEL, extra: {})
565
567
  _body = {}
566
568
  _body[:tags] = tags if tags != SENTINEL
567
569
  _body[:scope] = scope if scope != SENTINEL
@@ -587,6 +589,8 @@ module Carbon
587
589
  _body[:parse_pdf_tables_with_ocr] = parse_pdf_tables_with_ocr if parse_pdf_tables_with_ocr != SENTINEL
588
590
  _body[:enable_file_picker] = enable_file_picker if enable_file_picker != SENTINEL
589
591
  _body[:sync_source_items] = sync_source_items if sync_source_items != SENTINEL
592
+ _body[:incremental_sync] = incremental_sync if incremental_sync != SENTINEL
593
+ _body[:file_sync_config] = file_sync_config if file_sync_config != SENTINEL
590
594
  o_auth_url_request = _body
591
595
  api_response = get_oauth_url_with_http_info_impl(o_auth_url_request, extra)
592
596
  api_response.data
@@ -621,11 +625,13 @@ module Carbon
621
625
  # @param request_id [String] This request id will be added to all files that get synced using the generated OAuth URL
622
626
  # @param use_ocr [Boolean] Enable OCR for files that support it. Supported formats: pdf
623
627
  # @param parse_pdf_tables_with_ocr [Boolean]
624
- # @param enable_file_picker [Boolean] Enable integration's file picker for sources that support it. Supported sources: GOOGLE_DRIVE, ONEDRIVE, SHAREPOINT, DROPBOX, BOX
628
+ # @param enable_file_picker [Boolean] Enable integration's file picker for sources that support it. Supported sources: BOX, SHAREPOINT, GOOGLE_DRIVE, DROPBOX, ONEDRIVE
625
629
  # @param sync_source_items [Boolean] Enabling this flag will fetch all available content from the source to be listed via list items endpoint
630
+ # @param incremental_sync [Boolean] Only sync files if they have not already been synced or if the embedding properties have changed. This flag is currently supported by ONEDRIVE, GOOGLE_DRIVE, BOX, DROPBOX. It will be ignored for other data sources.
631
+ # @param file_sync_config [HelpdeskFileSyncConfigNullable]
626
632
  # @param body [OAuthURLRequest]
627
633
  # @param [Hash] extra additional parameters to pass along through :header_params, :query_params, or parameter name
628
- def get_oauth_url_with_http_info(service:, tags: SENTINEL, scope: SENTINEL, chunk_size: 1500, chunk_overlap: 20, skip_embedding_generation: false, embedding_model: 'OPENAI', zendesk_subdomain: SENTINEL, microsoft_tenant: SENTINEL, sharepoint_site_name: SENTINEL, confluence_subdomain: SENTINEL, generate_sparse_vectors: false, prepend_filename_to_chunks: false, max_items_per_chunk: SENTINEL, salesforce_domain: SENTINEL, sync_files_on_connection: true, set_page_as_boundary: false, data_source_id: SENTINEL, connecting_new_account: false, request_id: 'fc8dfd30-8e4c-4f40-acc5-f05b3cc961d2', use_ocr: false, parse_pdf_tables_with_ocr: false, enable_file_picker: true, sync_source_items: true, extra: {})
634
+ def get_oauth_url_with_http_info(service:, tags: SENTINEL, scope: SENTINEL, chunk_size: 1500, chunk_overlap: 20, skip_embedding_generation: false, embedding_model: 'OPENAI', zendesk_subdomain: SENTINEL, microsoft_tenant: SENTINEL, sharepoint_site_name: SENTINEL, confluence_subdomain: SENTINEL, generate_sparse_vectors: false, prepend_filename_to_chunks: false, max_items_per_chunk: SENTINEL, salesforce_domain: SENTINEL, sync_files_on_connection: true, set_page_as_boundary: false, data_source_id: SENTINEL, connecting_new_account: false, request_id: '444e3f13-e490-4cc0-9cba-48957104083d', use_ocr: false, parse_pdf_tables_with_ocr: false, enable_file_picker: true, sync_source_items: true, incremental_sync: false, file_sync_config: SENTINEL, extra: {})
629
635
  _body = {}
630
636
  _body[:tags] = tags if tags != SENTINEL
631
637
  _body[:scope] = scope if scope != SENTINEL
@@ -651,6 +657,8 @@ module Carbon
651
657
  _body[:parse_pdf_tables_with_ocr] = parse_pdf_tables_with_ocr if parse_pdf_tables_with_ocr != SENTINEL
652
658
  _body[:enable_file_picker] = enable_file_picker if enable_file_picker != SENTINEL
653
659
  _body[:sync_source_items] = sync_source_items if sync_source_items != SENTINEL
660
+ _body[:incremental_sync] = incremental_sync if incremental_sync != SENTINEL
661
+ _body[:file_sync_config] = file_sync_config if file_sync_config != SENTINEL
654
662
  o_auth_url_request = _body
655
663
  get_oauth_url_with_http_info_impl(o_auth_url_request, extra)
656
664
  end
@@ -1415,9 +1423,10 @@ module Carbon
1415
1423
  # @param request_id [String]
1416
1424
  # @param use_ocr [Boolean]
1417
1425
  # @param parse_pdf_tables_with_ocr [Boolean]
1426
+ # @param incremental_sync [Boolean] Only sync files if they have not already been synced or if the embedding properties have changed. This flag is currently supported by ONEDRIVE, GOOGLE_DRIVE, BOX, DROPBOX. It will be ignored for other data sources.
1418
1427
  # @param body [SyncFilesRequest]
1419
1428
  # @param [Hash] extra additional parameters to pass along through :header_params, :query_params, or parameter name
1420
- def sync_confluence(data_source_id:, ids:, tags: SENTINEL, chunk_size: 1500, chunk_overlap: 20, skip_embedding_generation: false, embedding_model: 'OPENAI', generate_sparse_vectors: false, prepend_filename_to_chunks: false, max_items_per_chunk: SENTINEL, set_page_as_boundary: false, request_id: '2446df66-66dd-4ea3-b248-a416d886e087', use_ocr: false, parse_pdf_tables_with_ocr: false, extra: {})
1429
+ def sync_confluence(data_source_id:, ids:, tags: SENTINEL, chunk_size: 1500, chunk_overlap: 20, skip_embedding_generation: false, embedding_model: 'OPENAI', generate_sparse_vectors: false, prepend_filename_to_chunks: false, max_items_per_chunk: SENTINEL, set_page_as_boundary: false, request_id: 'a5c6b913-12ce-4ae5-af61-694dd5c400fc', use_ocr: false, parse_pdf_tables_with_ocr: false, incremental_sync: false, extra: {})
1421
1430
  _body = {}
1422
1431
  _body[:tags] = tags if tags != SENTINEL
1423
1432
  _body[:data_source_id] = data_source_id if data_source_id != SENTINEL
@@ -1433,6 +1442,7 @@ module Carbon
1433
1442
  _body[:request_id] = request_id if request_id != SENTINEL
1434
1443
  _body[:use_ocr] = use_ocr if use_ocr != SENTINEL
1435
1444
  _body[:parse_pdf_tables_with_ocr] = parse_pdf_tables_with_ocr if parse_pdf_tables_with_ocr != SENTINEL
1445
+ _body[:incremental_sync] = incremental_sync if incremental_sync != SENTINEL
1436
1446
  sync_files_request = _body
1437
1447
  api_response = sync_confluence_with_http_info_impl(sync_files_request, extra)
1438
1448
  api_response.data
@@ -1459,9 +1469,10 @@ module Carbon
1459
1469
  # @param request_id [String]
1460
1470
  # @param use_ocr [Boolean]
1461
1471
  # @param parse_pdf_tables_with_ocr [Boolean]
1472
+ # @param incremental_sync [Boolean] Only sync files if they have not already been synced or if the embedding properties have changed. This flag is currently supported by ONEDRIVE, GOOGLE_DRIVE, BOX, DROPBOX. It will be ignored for other data sources.
1462
1473
  # @param body [SyncFilesRequest]
1463
1474
  # @param [Hash] extra additional parameters to pass along through :header_params, :query_params, or parameter name
1464
- def sync_confluence_with_http_info(data_source_id:, ids:, tags: SENTINEL, chunk_size: 1500, chunk_overlap: 20, skip_embedding_generation: false, embedding_model: 'OPENAI', generate_sparse_vectors: false, prepend_filename_to_chunks: false, max_items_per_chunk: SENTINEL, set_page_as_boundary: false, request_id: '2446df66-66dd-4ea3-b248-a416d886e087', use_ocr: false, parse_pdf_tables_with_ocr: false, extra: {})
1475
+ def sync_confluence_with_http_info(data_source_id:, ids:, tags: SENTINEL, chunk_size: 1500, chunk_overlap: 20, skip_embedding_generation: false, embedding_model: 'OPENAI', generate_sparse_vectors: false, prepend_filename_to_chunks: false, max_items_per_chunk: SENTINEL, set_page_as_boundary: false, request_id: 'a5c6b913-12ce-4ae5-af61-694dd5c400fc', use_ocr: false, parse_pdf_tables_with_ocr: false, incremental_sync: false, extra: {})
1465
1476
  _body = {}
1466
1477
  _body[:tags] = tags if tags != SENTINEL
1467
1478
  _body[:data_source_id] = data_source_id if data_source_id != SENTINEL
@@ -1477,6 +1488,7 @@ module Carbon
1477
1488
  _body[:request_id] = request_id if request_id != SENTINEL
1478
1489
  _body[:use_ocr] = use_ocr if use_ocr != SENTINEL
1479
1490
  _body[:parse_pdf_tables_with_ocr] = parse_pdf_tables_with_ocr if parse_pdf_tables_with_ocr != SENTINEL
1491
+ _body[:incremental_sync] = incremental_sync if incremental_sync != SENTINEL
1480
1492
  sync_files_request = _body
1481
1493
  sync_confluence_with_http_info_impl(sync_files_request, extra)
1482
1494
  end
@@ -1663,9 +1675,10 @@ module Carbon
1663
1675
  # @param request_id [String]
1664
1676
  # @param use_ocr [Boolean]
1665
1677
  # @param parse_pdf_tables_with_ocr [Boolean]
1678
+ # @param incremental_sync [Boolean] Only sync files if they have not already been synced or if the embedding properties have changed. This flag is currently supported by ONEDRIVE, GOOGLE_DRIVE, BOX, DROPBOX. It will be ignored for other data sources.
1666
1679
  # @param body [SyncFilesRequest]
1667
1680
  # @param [Hash] extra additional parameters to pass along through :header_params, :query_params, or parameter name
1668
- def sync_files(data_source_id:, ids:, tags: SENTINEL, chunk_size: 1500, chunk_overlap: 20, skip_embedding_generation: false, embedding_model: 'OPENAI', generate_sparse_vectors: false, prepend_filename_to_chunks: false, max_items_per_chunk: SENTINEL, set_page_as_boundary: false, request_id: '2446df66-66dd-4ea3-b248-a416d886e087', use_ocr: false, parse_pdf_tables_with_ocr: false, extra: {})
1681
+ def sync_files(data_source_id:, ids:, tags: SENTINEL, chunk_size: 1500, chunk_overlap: 20, skip_embedding_generation: false, embedding_model: 'OPENAI', generate_sparse_vectors: false, prepend_filename_to_chunks: false, max_items_per_chunk: SENTINEL, set_page_as_boundary: false, request_id: 'a5c6b913-12ce-4ae5-af61-694dd5c400fc', use_ocr: false, parse_pdf_tables_with_ocr: false, incremental_sync: false, extra: {})
1669
1682
  _body = {}
1670
1683
  _body[:tags] = tags if tags != SENTINEL
1671
1684
  _body[:data_source_id] = data_source_id if data_source_id != SENTINEL
@@ -1681,6 +1694,7 @@ module Carbon
1681
1694
  _body[:request_id] = request_id if request_id != SENTINEL
1682
1695
  _body[:use_ocr] = use_ocr if use_ocr != SENTINEL
1683
1696
  _body[:parse_pdf_tables_with_ocr] = parse_pdf_tables_with_ocr if parse_pdf_tables_with_ocr != SENTINEL
1697
+ _body[:incremental_sync] = incremental_sync if incremental_sync != SENTINEL
1684
1698
  sync_files_request = _body
1685
1699
  api_response = sync_files_with_http_info_impl(sync_files_request, extra)
1686
1700
  api_response.data
@@ -1707,9 +1721,10 @@ module Carbon
1707
1721
  # @param request_id [String]
1708
1722
  # @param use_ocr [Boolean]
1709
1723
  # @param parse_pdf_tables_with_ocr [Boolean]
1724
+ # @param incremental_sync [Boolean] Only sync files if they have not already been synced or if the embedding properties have changed. This flag is currently supported by ONEDRIVE, GOOGLE_DRIVE, BOX, DROPBOX. It will be ignored for other data sources.
1710
1725
  # @param body [SyncFilesRequest]
1711
1726
  # @param [Hash] extra additional parameters to pass along through :header_params, :query_params, or parameter name
1712
- def sync_files_with_http_info(data_source_id:, ids:, tags: SENTINEL, chunk_size: 1500, chunk_overlap: 20, skip_embedding_generation: false, embedding_model: 'OPENAI', generate_sparse_vectors: false, prepend_filename_to_chunks: false, max_items_per_chunk: SENTINEL, set_page_as_boundary: false, request_id: '2446df66-66dd-4ea3-b248-a416d886e087', use_ocr: false, parse_pdf_tables_with_ocr: false, extra: {})
1727
+ def sync_files_with_http_info(data_source_id:, ids:, tags: SENTINEL, chunk_size: 1500, chunk_overlap: 20, skip_embedding_generation: false, embedding_model: 'OPENAI', generate_sparse_vectors: false, prepend_filename_to_chunks: false, max_items_per_chunk: SENTINEL, set_page_as_boundary: false, request_id: 'a5c6b913-12ce-4ae5-af61-694dd5c400fc', use_ocr: false, parse_pdf_tables_with_ocr: false, incremental_sync: false, extra: {})
1713
1728
  _body = {}
1714
1729
  _body[:tags] = tags if tags != SENTINEL
1715
1730
  _body[:data_source_id] = data_source_id if data_source_id != SENTINEL
@@ -1725,6 +1740,7 @@ module Carbon
1725
1740
  _body[:request_id] = request_id if request_id != SENTINEL
1726
1741
  _body[:use_ocr] = use_ocr if use_ocr != SENTINEL
1727
1742
  _body[:parse_pdf_tables_with_ocr] = parse_pdf_tables_with_ocr if parse_pdf_tables_with_ocr != SENTINEL
1743
+ _body[:incremental_sync] = incremental_sync if incremental_sync != SENTINEL
1728
1744
  sync_files_request = _body
1729
1745
  sync_files_with_http_info_impl(sync_files_request, extra)
1730
1746
  end
@@ -38,6 +38,7 @@ module Carbon
38
38
  GITHUB = "GITHUB".freeze
39
39
  JPG = "JPG".freeze
40
40
  PNG = "PNG".freeze
41
+ MPEG = "MPEG".freeze
41
42
  MP3 = "MP3".freeze
42
43
  MP4 = "MP4".freeze
43
44
  MP2 = "MP2".freeze
@@ -51,7 +52,7 @@ module Carbon
51
52
  WEBM = "WEBM".freeze
52
53
 
53
54
  def self.all_vars
54
- @all_vars ||= [TXT, CSV, TSV, PDF, DOCX, PPTX, XLSX, MD, RTF, JSON, NOTION, GOOGLE_DOCS, GOOGLE_SHEETS, GOOGLE_SLIDES, INTERCOM, CONFLUENCE, RSS_FEED, GMAIL, OUTLOOK, ZENDESK, FRESHDESK, WEB_SCRAPE, GITBOOK, SALESFORCE, GITHUB, JPG, PNG, MP3, MP4, MP2, AAC, WAV, FLAC, PCM, M4_A, OGG, OPUS, WEBM].freeze
55
+ @all_vars ||= [TXT, CSV, TSV, PDF, DOCX, PPTX, XLSX, MD, RTF, JSON, NOTION, GOOGLE_DOCS, GOOGLE_SHEETS, GOOGLE_SLIDES, INTERCOM, CONFLUENCE, RSS_FEED, GMAIL, OUTLOOK, ZENDESK, FRESHDESK, WEB_SCRAPE, GITBOOK, SALESFORCE, GITHUB, JPG, PNG, MPEG, MP3, MP4, MP2, AAC, WAV, FLAC, PCM, M4_A, OGG, OPUS, WEBM].freeze
55
56
  end
56
57
 
57
58
  # Builds the enum from string
@@ -38,6 +38,7 @@ module Carbon
38
38
  GITHUB = "GITHUB".freeze
39
39
  JPG = "JPG".freeze
40
40
  PNG = "PNG".freeze
41
+ MPEG = "MPEG".freeze
41
42
  MP3 = "MP3".freeze
42
43
  MP4 = "MP4".freeze
43
44
  MP2 = "MP2".freeze
@@ -51,7 +52,7 @@ module Carbon
51
52
  WEBM = "WEBM".freeze
52
53
 
53
54
  def self.all_vars
54
- @all_vars ||= [TXT, CSV, TSV, PDF, DOCX, PPTX, XLSX, MD, RTF, JSON, NOTION, GOOGLE_DOCS, GOOGLE_SHEETS, GOOGLE_SLIDES, INTERCOM, CONFLUENCE, RSS_FEED, GMAIL, OUTLOOK, ZENDESK, FRESHDESK, WEB_SCRAPE, GITBOOK, SALESFORCE, GITHUB, JPG, PNG, MP3, MP4, MP2, AAC, WAV, FLAC, PCM, M4_A, OGG, OPUS, WEBM].freeze
55
+ @all_vars ||= [TXT, CSV, TSV, PDF, DOCX, PPTX, XLSX, MD, RTF, JSON, NOTION, GOOGLE_DOCS, GOOGLE_SHEETS, GOOGLE_SLIDES, INTERCOM, CONFLUENCE, RSS_FEED, GMAIL, OUTLOOK, ZENDESK, FRESHDESK, WEB_SCRAPE, GITBOOK, SALESFORCE, GITHUB, JPG, PNG, MPEG, MP3, MP4, MP2, AAC, WAV, FLAC, PCM, M4_A, OGG, OPUS, WEBM].freeze
55
56
  end
56
57
 
57
58
  # Builds the enum from string
@@ -0,0 +1,228 @@
1
+ =begin
2
+ #Carbon
3
+
4
+ #Connect external data to LLMs, no matter the source.
5
+
6
+ The version of the OpenAPI document: 1.0.0
7
+ =end
8
+
9
+ require 'date'
10
+ require 'time'
11
+
12
+ module Carbon
13
+ class HelpdeskFileSyncConfig
14
+ attr_accessor :file_types
15
+
16
+ attr_accessor :sync_attachments
17
+
18
+ # Attribute mapping from ruby-style variable name to JSON key.
19
+ def self.attribute_map
20
+ {
21
+ :'file_types' => :'file_types',
22
+ :'sync_attachments' => :'sync_attachments'
23
+ }
24
+ end
25
+
26
+ # Returns all the JSON keys this model knows about
27
+ def self.acceptable_attributes
28
+ attribute_map.values
29
+ end
30
+
31
+ # Attribute type mapping.
32
+ def self.openapi_types
33
+ {
34
+ :'file_types' => :'Array<HelpdeskFileTypes>',
35
+ :'sync_attachments' => :'Boolean'
36
+ }
37
+ end
38
+
39
+ # List of attributes with nullable: true
40
+ def self.openapi_nullable
41
+ Set.new([
42
+ ])
43
+ end
44
+
45
+ # Initializes the object
46
+ # @param [Hash] attributes Model attributes in the form of hash
47
+ def initialize(attributes = {})
48
+ if (!attributes.is_a?(Hash))
49
+ fail ArgumentError, "The input argument (attributes) must be a hash in `Carbon::HelpdeskFileSyncConfig` initialize method"
50
+ end
51
+
52
+ # check to see if the attribute exists and convert string to symbol for hash key
53
+ attributes = attributes.each_with_object({}) { |(k, v), h|
54
+ if (!self.class.attribute_map.key?(k.to_sym))
55
+ fail ArgumentError, "`#{k}` is not a valid attribute in `Carbon::HelpdeskFileSyncConfig`. Please check the name to make sure it's valid. List of attributes: " + self.class.attribute_map.keys.inspect
56
+ end
57
+ h[k.to_sym] = v
58
+ }
59
+
60
+ if attributes.key?(:'file_types')
61
+ if (value = attributes[:'file_types']).is_a?(Array)
62
+ self.file_types = value
63
+ end
64
+ end
65
+
66
+ if attributes.key?(:'sync_attachments')
67
+ self.sync_attachments = attributes[:'sync_attachments']
68
+ else
69
+ self.sync_attachments = false
70
+ end
71
+ end
72
+
73
+ # Show invalid properties with the reasons. Usually used together with valid?
74
+ # @return Array for valid properties with the reasons
75
+ def list_invalid_properties
76
+ invalid_properties = Array.new
77
+ invalid_properties
78
+ end
79
+
80
+ # Check to see if the all the properties in the model are valid
81
+ # @return true if the model is valid
82
+ def valid?
83
+ true
84
+ end
85
+
86
+ # Checks equality by comparing each attribute.
87
+ # @param [Object] Object to be compared
88
+ def ==(o)
89
+ return true if self.equal?(o)
90
+ self.class == o.class &&
91
+ file_types == o.file_types &&
92
+ sync_attachments == o.sync_attachments
93
+ end
94
+
95
+ # @see the `==` method
96
+ # @param [Object] Object to be compared
97
+ def eql?(o)
98
+ self == o
99
+ end
100
+
101
+ # Calculates hash code according to all attributes.
102
+ # @return [Integer] Hash code
103
+ def hash
104
+ [file_types, sync_attachments].hash
105
+ end
106
+
107
+ # Builds the object from hash
108
+ # @param [Hash] attributes Model attributes in the form of hash
109
+ # @return [Object] Returns the model itself
110
+ def self.build_from_hash(attributes)
111
+ new.build_from_hash(attributes)
112
+ end
113
+
114
+ # Builds the object from hash
115
+ # @param [Hash] attributes Model attributes in the form of hash
116
+ # @return [Object] Returns the model itself
117
+ def build_from_hash(attributes)
118
+ return nil unless attributes.is_a?(Hash)
119
+ attributes = attributes.transform_keys(&:to_sym)
120
+ self.class.openapi_types.each_pair do |key, type|
121
+ if attributes[self.class.attribute_map[key]].nil? && self.class.openapi_nullable.include?(key)
122
+ self.send("#{key}=", nil)
123
+ elsif type =~ /\AArray<(.*)>/i
124
+ # check to ensure the input is an array given that the attribute
125
+ # is documented as an array but the input is not
126
+ if attributes[self.class.attribute_map[key]].is_a?(Array)
127
+ self.send("#{key}=", attributes[self.class.attribute_map[key]].map { |v| _deserialize($1, v) })
128
+ end
129
+ elsif !attributes[self.class.attribute_map[key]].nil?
130
+ self.send("#{key}=", _deserialize(type, attributes[self.class.attribute_map[key]]))
131
+ end
132
+ end
133
+
134
+ self
135
+ end
136
+
137
+ # Deserializes the data based on type
138
+ # @param string type Data type
139
+ # @param string value Value to be deserialized
140
+ # @return [Object] Deserialized data
141
+ def _deserialize(type, value)
142
+ case type.to_sym
143
+ when :Time
144
+ Time.parse(value)
145
+ when :Date
146
+ Date.parse(value)
147
+ when :String
148
+ value.to_s
149
+ when :Integer
150
+ value.to_i
151
+ when :Float
152
+ value.to_f
153
+ when :Boolean
154
+ if value.to_s =~ /\A(true|t|yes|y|1)\z/i
155
+ true
156
+ else
157
+ false
158
+ end
159
+ when :Object
160
+ # generic object (usually a Hash), return directly
161
+ value
162
+ when /\AArray<(?<inner_type>.+)>\z/
163
+ inner_type = Regexp.last_match[:inner_type]
164
+ value.map { |v| _deserialize(inner_type, v) }
165
+ when /\AHash<(?<k_type>.+?), (?<v_type>.+)>\z/
166
+ k_type = Regexp.last_match[:k_type]
167
+ v_type = Regexp.last_match[:v_type]
168
+ {}.tap do |hash|
169
+ value.each do |k, v|
170
+ hash[_deserialize(k_type, k)] = _deserialize(v_type, v)
171
+ end
172
+ end
173
+ else # model
174
+ # models (e.g. Pet) or oneOf
175
+ klass = Carbon.const_get(type)
176
+ klass.respond_to?(:openapi_one_of) ? klass.build(value) : klass.build_from_hash(value)
177
+ end
178
+ end
179
+
180
+ # Returns the string representation of the object
181
+ # @return [String] String presentation of the object
182
+ def to_s
183
+ to_hash.to_s
184
+ end
185
+
186
+ # to_body is an alias to to_hash (backward compatibility)
187
+ # @return [Hash] Returns the object in the form of hash
188
+ def to_body
189
+ to_hash
190
+ end
191
+
192
+ # Returns the object in the form of hash
193
+ # @return [Hash] Returns the object in the form of hash
194
+ def to_hash
195
+ hash = {}
196
+ self.class.attribute_map.each_pair do |attr, param|
197
+ value = self.send(attr)
198
+ if value.nil?
199
+ is_nullable = self.class.openapi_nullable.include?(attr)
200
+ next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}"))
201
+ end
202
+
203
+ hash[param] = _to_hash(value)
204
+ end
205
+ hash
206
+ end
207
+
208
+ # Outputs non-array value in the form of hash
209
+ # For object, use to_hash. Otherwise, just return the value
210
+ # @param [Object] value Any valid value
211
+ # @return [Hash] Returns the value in the form of hash
212
+ def _to_hash(value)
213
+ if value.is_a?(Array)
214
+ value.compact.map { |v| _to_hash(v) }
215
+ elsif value.is_a?(Hash)
216
+ {}.tap do |hash|
217
+ value.each { |k, v| hash[k] = _to_hash(v) }
218
+ end
219
+ elsif value.respond_to? :to_hash
220
+ value.to_hash
221
+ else
222
+ value
223
+ end
224
+ end
225
+
226
+ end
227
+
228
+ end
@@ -0,0 +1,229 @@
1
+ =begin
2
+ #Carbon
3
+
4
+ #Connect external data to LLMs, no matter the source.
5
+
6
+ The version of the OpenAPI document: 1.0.0
7
+ =end
8
+
9
+ require 'date'
10
+ require 'time'
11
+
12
+ module Carbon
13
+ # Used to configure file syncing for certain connectors when sync_files_on_connection is set to true
14
+ class HelpdeskFileSyncConfigNullable
15
+ attr_accessor :file_types
16
+
17
+ attr_accessor :sync_attachments
18
+
19
+ # Attribute mapping from ruby-style variable name to JSON key.
20
+ def self.attribute_map
21
+ {
22
+ :'file_types' => :'file_types',
23
+ :'sync_attachments' => :'sync_attachments'
24
+ }
25
+ end
26
+
27
+ # Returns all the JSON keys this model knows about
28
+ def self.acceptable_attributes
29
+ attribute_map.values
30
+ end
31
+
32
+ # Attribute type mapping.
33
+ def self.openapi_types
34
+ {
35
+ :'file_types' => :'Array<HelpdeskFileTypes>',
36
+ :'sync_attachments' => :'Boolean'
37
+ }
38
+ end
39
+
40
+ # List of attributes with nullable: true
41
+ def self.openapi_nullable
42
+ Set.new([
43
+ ])
44
+ end
45
+
46
+ # Initializes the object
47
+ # @param [Hash] attributes Model attributes in the form of hash
48
+ def initialize(attributes = {})
49
+ if (!attributes.is_a?(Hash))
50
+ fail ArgumentError, "The input argument (attributes) must be a hash in `Carbon::HelpdeskFileSyncConfigNullable` initialize method"
51
+ end
52
+
53
+ # check to see if the attribute exists and convert string to symbol for hash key
54
+ attributes = attributes.each_with_object({}) { |(k, v), h|
55
+ if (!self.class.attribute_map.key?(k.to_sym))
56
+ fail ArgumentError, "`#{k}` is not a valid attribute in `Carbon::HelpdeskFileSyncConfigNullable`. Please check the name to make sure it's valid. List of attributes: " + self.class.attribute_map.keys.inspect
57
+ end
58
+ h[k.to_sym] = v
59
+ }
60
+
61
+ if attributes.key?(:'file_types')
62
+ if (value = attributes[:'file_types']).is_a?(Array)
63
+ self.file_types = value
64
+ end
65
+ end
66
+
67
+ if attributes.key?(:'sync_attachments')
68
+ self.sync_attachments = attributes[:'sync_attachments']
69
+ else
70
+ self.sync_attachments = false
71
+ end
72
+ end
73
+
74
+ # Show invalid properties with the reasons. Usually used together with valid?
75
+ # @return Array for valid properties with the reasons
76
+ def list_invalid_properties
77
+ invalid_properties = Array.new
78
+ invalid_properties
79
+ end
80
+
81
+ # Check to see if the all the properties in the model are valid
82
+ # @return true if the model is valid
83
+ def valid?
84
+ true
85
+ end
86
+
87
+ # Checks equality by comparing each attribute.
88
+ # @param [Object] Object to be compared
89
+ def ==(o)
90
+ return true if self.equal?(o)
91
+ self.class == o.class &&
92
+ file_types == o.file_types &&
93
+ sync_attachments == o.sync_attachments
94
+ end
95
+
96
+ # @see the `==` method
97
+ # @param [Object] Object to be compared
98
+ def eql?(o)
99
+ self == o
100
+ end
101
+
102
+ # Calculates hash code according to all attributes.
103
+ # @return [Integer] Hash code
104
+ def hash
105
+ [file_types, sync_attachments].hash
106
+ end
107
+
108
+ # Builds the object from hash
109
+ # @param [Hash] attributes Model attributes in the form of hash
110
+ # @return [Object] Returns the model itself
111
+ def self.build_from_hash(attributes)
112
+ new.build_from_hash(attributes)
113
+ end
114
+
115
+ # Builds the object from hash
116
+ # @param [Hash] attributes Model attributes in the form of hash
117
+ # @return [Object] Returns the model itself
118
+ def build_from_hash(attributes)
119
+ return nil unless attributes.is_a?(Hash)
120
+ attributes = attributes.transform_keys(&:to_sym)
121
+ self.class.openapi_types.each_pair do |key, type|
122
+ if attributes[self.class.attribute_map[key]].nil? && self.class.openapi_nullable.include?(key)
123
+ self.send("#{key}=", nil)
124
+ elsif type =~ /\AArray<(.*)>/i
125
+ # check to ensure the input is an array given that the attribute
126
+ # is documented as an array but the input is not
127
+ if attributes[self.class.attribute_map[key]].is_a?(Array)
128
+ self.send("#{key}=", attributes[self.class.attribute_map[key]].map { |v| _deserialize($1, v) })
129
+ end
130
+ elsif !attributes[self.class.attribute_map[key]].nil?
131
+ self.send("#{key}=", _deserialize(type, attributes[self.class.attribute_map[key]]))
132
+ end
133
+ end
134
+
135
+ self
136
+ end
137
+
138
+ # Deserializes the data based on type
139
+ # @param string type Data type
140
+ # @param string value Value to be deserialized
141
+ # @return [Object] Deserialized data
142
+ def _deserialize(type, value)
143
+ case type.to_sym
144
+ when :Time
145
+ Time.parse(value)
146
+ when :Date
147
+ Date.parse(value)
148
+ when :String
149
+ value.to_s
150
+ when :Integer
151
+ value.to_i
152
+ when :Float
153
+ value.to_f
154
+ when :Boolean
155
+ if value.to_s =~ /\A(true|t|yes|y|1)\z/i
156
+ true
157
+ else
158
+ false
159
+ end
160
+ when :Object
161
+ # generic object (usually a Hash), return directly
162
+ value
163
+ when /\AArray<(?<inner_type>.+)>\z/
164
+ inner_type = Regexp.last_match[:inner_type]
165
+ value.map { |v| _deserialize(inner_type, v) }
166
+ when /\AHash<(?<k_type>.+?), (?<v_type>.+)>\z/
167
+ k_type = Regexp.last_match[:k_type]
168
+ v_type = Regexp.last_match[:v_type]
169
+ {}.tap do |hash|
170
+ value.each do |k, v|
171
+ hash[_deserialize(k_type, k)] = _deserialize(v_type, v)
172
+ end
173
+ end
174
+ else # model
175
+ # models (e.g. Pet) or oneOf
176
+ klass = Carbon.const_get(type)
177
+ klass.respond_to?(:openapi_one_of) ? klass.build(value) : klass.build_from_hash(value)
178
+ end
179
+ end
180
+
181
+ # Returns the string representation of the object
182
+ # @return [String] String presentation of the object
183
+ def to_s
184
+ to_hash.to_s
185
+ end
186
+
187
+ # to_body is an alias to to_hash (backward compatibility)
188
+ # @return [Hash] Returns the object in the form of hash
189
+ def to_body
190
+ to_hash
191
+ end
192
+
193
+ # Returns the object in the form of hash
194
+ # @return [Hash] Returns the object in the form of hash
195
+ def to_hash
196
+ hash = {}
197
+ self.class.attribute_map.each_pair do |attr, param|
198
+ value = self.send(attr)
199
+ if value.nil?
200
+ is_nullable = self.class.openapi_nullable.include?(attr)
201
+ next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}"))
202
+ end
203
+
204
+ hash[param] = _to_hash(value)
205
+ end
206
+ hash
207
+ end
208
+
209
+ # Outputs non-array value in the form of hash
210
+ # For object, use to_hash. Otherwise, just return the value
211
+ # @param [Object] value Any valid value
212
+ # @return [Hash] Returns the value in the form of hash
213
+ def _to_hash(value)
214
+ if value.is_a?(Array)
215
+ value.compact.map { |v| _to_hash(v) }
216
+ elsif value.is_a?(Hash)
217
+ {}.tap do |hash|
218
+ value.each { |k, v| hash[k] = _to_hash(v) }
219
+ end
220
+ elsif value.respond_to? :to_hash
221
+ value.to_hash
222
+ else
223
+ value
224
+ end
225
+ end
226
+
227
+ end
228
+
229
+ end
@@ -0,0 +1,36 @@
1
+ =begin
2
+ #Carbon
3
+
4
+ #Connect external data to LLMs, no matter the source.
5
+
6
+ The version of the OpenAPI document: 1.0.0
7
+ =end
8
+
9
+ require 'date'
10
+ require 'time'
11
+
12
+ module Carbon
13
+ class HelpdeskFileTypes
14
+ TICKET = "TICKET".freeze
15
+ ARTICLE = "ARTICLE".freeze
16
+
17
+ def self.all_vars
18
+ @all_vars ||= [TICKET, ARTICLE].freeze
19
+ end
20
+
21
+ # Builds the enum from string
22
+ # @param [String] The enum value in the form of the string
23
+ # @return [String] The enum value
24
+ def self.build_from_hash(value)
25
+ new.build_from_hash(value)
26
+ end
27
+
28
+ # Builds the enum from string
29
+ # @param [String] The enum value in the form of the string
30
+ # @return [String] The enum value
31
+ def build_from_hash(value)
32
+ return value if HelpdeskFileTypes.all_vars.include?(value)
33
+ raise "Invalid ENUM value #{value} for class #HelpdeskFileTypes"
34
+ end
35
+ end
36
+ end
@@ -61,12 +61,17 @@ module Carbon
61
61
 
62
62
  attr_accessor :parse_pdf_tables_with_ocr
63
63
 
64
- # Enable integration's file picker for sources that support it. Supported sources: GOOGLE_DRIVE, ONEDRIVE, SHAREPOINT, DROPBOX, BOX
64
+ # Enable integration's file picker for sources that support it. Supported sources: BOX, SHAREPOINT, GOOGLE_DRIVE, DROPBOX, ONEDRIVE
65
65
  attr_accessor :enable_file_picker
66
66
 
67
67
  # Enabling this flag will fetch all available content from the source to be listed via list items endpoint
68
68
  attr_accessor :sync_source_items
69
69
 
70
+ # Only sync files if they have not already been synced or if the embedding properties have changed. This flag is currently supported by ONEDRIVE, GOOGLE_DRIVE, BOX, DROPBOX. It will be ignored for other data sources.
71
+ attr_accessor :incremental_sync
72
+
73
+ attr_accessor :file_sync_config
74
+
70
75
  # Attribute mapping from ruby-style variable name to JSON key.
71
76
  def self.attribute_map
72
77
  {
@@ -93,7 +98,9 @@ module Carbon
93
98
  :'use_ocr' => :'use_ocr',
94
99
  :'parse_pdf_tables_with_ocr' => :'parse_pdf_tables_with_ocr',
95
100
  :'enable_file_picker' => :'enable_file_picker',
96
- :'sync_source_items' => :'sync_source_items'
101
+ :'sync_source_items' => :'sync_source_items',
102
+ :'incremental_sync' => :'incremental_sync',
103
+ :'file_sync_config' => :'file_sync_config'
97
104
  }
98
105
  end
99
106
 
@@ -128,7 +135,9 @@ module Carbon
128
135
  :'use_ocr' => :'Boolean',
129
136
  :'parse_pdf_tables_with_ocr' => :'Boolean',
130
137
  :'enable_file_picker' => :'Boolean',
131
- :'sync_source_items' => :'Boolean'
138
+ :'sync_source_items' => :'Boolean',
139
+ :'incremental_sync' => :'Boolean',
140
+ :'file_sync_config' => :'HelpdeskFileSyncConfigNullable'
132
141
  }
133
142
  end
134
143
 
@@ -154,6 +163,7 @@ module Carbon
154
163
  :'connecting_new_account',
155
164
  :'use_ocr',
156
165
  :'parse_pdf_tables_with_ocr',
166
+ :'file_sync_config'
157
167
  ])
158
168
  end
159
169
 
@@ -269,7 +279,7 @@ module Carbon
269
279
  if attributes.key?(:'request_id')
270
280
  self.request_id = attributes[:'request_id']
271
281
  else
272
- self.request_id = 'fc8dfd30-8e4c-4f40-acc5-f05b3cc961d2'
282
+ self.request_id = '444e3f13-e490-4cc0-9cba-48957104083d'
273
283
  end
274
284
 
275
285
  if attributes.key?(:'use_ocr')
@@ -295,6 +305,16 @@ module Carbon
295
305
  else
296
306
  self.sync_source_items = true
297
307
  end
308
+
309
+ if attributes.key?(:'incremental_sync')
310
+ self.incremental_sync = attributes[:'incremental_sync']
311
+ else
312
+ self.incremental_sync = false
313
+ end
314
+
315
+ if attributes.key?(:'file_sync_config')
316
+ self.file_sync_config = attributes[:'file_sync_config']
317
+ end
298
318
  end
299
319
 
300
320
  # Show invalid properties with the reasons. Usually used together with valid?
@@ -343,7 +363,9 @@ module Carbon
343
363
  use_ocr == o.use_ocr &&
344
364
  parse_pdf_tables_with_ocr == o.parse_pdf_tables_with_ocr &&
345
365
  enable_file_picker == o.enable_file_picker &&
346
- sync_source_items == o.sync_source_items
366
+ sync_source_items == o.sync_source_items &&
367
+ incremental_sync == o.incremental_sync &&
368
+ file_sync_config == o.file_sync_config
347
369
  end
348
370
 
349
371
  # @see the `==` method
@@ -355,7 +377,7 @@ module Carbon
355
377
  # Calculates hash code according to all attributes.
356
378
  # @return [Integer] Hash code
357
379
  def hash
358
- [tags, scope, service, chunk_size, chunk_overlap, skip_embedding_generation, embedding_model, zendesk_subdomain, microsoft_tenant, sharepoint_site_name, confluence_subdomain, generate_sparse_vectors, prepend_filename_to_chunks, max_items_per_chunk, salesforce_domain, sync_files_on_connection, set_page_as_boundary, data_source_id, connecting_new_account, request_id, use_ocr, parse_pdf_tables_with_ocr, enable_file_picker, sync_source_items].hash
380
+ [tags, scope, service, chunk_size, chunk_overlap, skip_embedding_generation, embedding_model, zendesk_subdomain, microsoft_tenant, sharepoint_site_name, confluence_subdomain, generate_sparse_vectors, prepend_filename_to_chunks, max_items_per_chunk, salesforce_domain, sync_files_on_connection, set_page_as_boundary, data_source_id, connecting_new_account, request_id, use_ocr, parse_pdf_tables_with_ocr, enable_file_picker, sync_source_items, incremental_sync, file_sync_config].hash
359
381
  end
360
382
 
361
383
  # Builds the object from hash
@@ -40,6 +40,9 @@ module Carbon
40
40
 
41
41
  attr_accessor :parse_pdf_tables_with_ocr
42
42
 
43
+ # Only sync files if they have not already been synced or if the embedding properties have changed. This flag is currently supported by ONEDRIVE, GOOGLE_DRIVE, BOX, DROPBOX. It will be ignored for other data sources.
44
+ attr_accessor :incremental_sync
45
+
43
46
  # Attribute mapping from ruby-style variable name to JSON key.
44
47
  def self.attribute_map
45
48
  {
@@ -56,7 +59,8 @@ module Carbon
56
59
  :'set_page_as_boundary' => :'set_page_as_boundary',
57
60
  :'request_id' => :'request_id',
58
61
  :'use_ocr' => :'use_ocr',
59
- :'parse_pdf_tables_with_ocr' => :'parse_pdf_tables_with_ocr'
62
+ :'parse_pdf_tables_with_ocr' => :'parse_pdf_tables_with_ocr',
63
+ :'incremental_sync' => :'incremental_sync'
60
64
  }
61
65
  end
62
66
 
@@ -81,7 +85,8 @@ module Carbon
81
85
  :'set_page_as_boundary' => :'Boolean',
82
86
  :'request_id' => :'String',
83
87
  :'use_ocr' => :'Boolean',
84
- :'parse_pdf_tables_with_ocr' => :'Boolean'
88
+ :'parse_pdf_tables_with_ocr' => :'Boolean',
89
+ :'incremental_sync' => :'Boolean'
85
90
  }
86
91
  end
87
92
 
@@ -97,7 +102,7 @@ module Carbon
97
102
  :'prepend_filename_to_chunks',
98
103
  :'max_items_per_chunk',
99
104
  :'use_ocr',
100
- :'parse_pdf_tables_with_ocr'
105
+ :'parse_pdf_tables_with_ocr',
101
106
  ])
102
107
  end
103
108
 
@@ -177,7 +182,7 @@ module Carbon
177
182
  if attributes.key?(:'request_id')
178
183
  self.request_id = attributes[:'request_id']
179
184
  else
180
- self.request_id = '2446df66-66dd-4ea3-b248-a416d886e087'
185
+ self.request_id = 'a5c6b913-12ce-4ae5-af61-694dd5c400fc'
181
186
  end
182
187
 
183
188
  if attributes.key?(:'use_ocr')
@@ -191,6 +196,12 @@ module Carbon
191
196
  else
192
197
  self.parse_pdf_tables_with_ocr = false
193
198
  end
199
+
200
+ if attributes.key?(:'incremental_sync')
201
+ self.incremental_sync = attributes[:'incremental_sync']
202
+ else
203
+ self.incremental_sync = false
204
+ end
194
205
  end
195
206
 
196
207
  # Show invalid properties with the reasons. Usually used together with valid?
@@ -234,7 +245,8 @@ module Carbon
234
245
  set_page_as_boundary == o.set_page_as_boundary &&
235
246
  request_id == o.request_id &&
236
247
  use_ocr == o.use_ocr &&
237
- parse_pdf_tables_with_ocr == o.parse_pdf_tables_with_ocr
248
+ parse_pdf_tables_with_ocr == o.parse_pdf_tables_with_ocr &&
249
+ incremental_sync == o.incremental_sync
238
250
  end
239
251
 
240
252
  # @see the `==` method
@@ -246,7 +258,7 @@ module Carbon
246
258
  # Calculates hash code according to all attributes.
247
259
  # @return [Integer] Hash code
248
260
  def hash
249
- [tags, data_source_id, ids, chunk_size, chunk_overlap, skip_embedding_generation, embedding_model, generate_sparse_vectors, prepend_filename_to_chunks, max_items_per_chunk, set_page_as_boundary, request_id, use_ocr, parse_pdf_tables_with_ocr].hash
261
+ [tags, data_source_id, ids, chunk_size, chunk_overlap, skip_embedding_generation, embedding_model, generate_sparse_vectors, prepend_filename_to_chunks, max_items_per_chunk, set_page_as_boundary, request_id, use_ocr, parse_pdf_tables_with_ocr, incremental_sync].hash
250
262
  end
251
263
 
252
264
  # Builds the object from hash
@@ -40,6 +40,11 @@ module Carbon
40
40
  # Enabling this flag will fetch all available content from the source to be listed via list items endpoint
41
41
  attr_accessor :sync_source_items
42
42
 
43
+ # Only sync files if they have not already been synced or if the embedding properties have changed. This flag is currently supported by ONEDRIVE, GOOGLE_DRIVE, BOX, DROPBOX. It will be ignored for other data sources.
44
+ attr_accessor :incremental_sync
45
+
46
+ attr_accessor :file_sync_config
47
+
43
48
  # Attribute mapping from ruby-style variable name to JSON key.
44
49
  def self.attribute_map
45
50
  {
@@ -55,7 +60,9 @@ module Carbon
55
60
  :'set_page_as_boundary' => :'set_page_as_boundary',
56
61
  :'request_id' => :'request_id',
57
62
  :'enable_file_picker' => :'enable_file_picker',
58
- :'sync_source_items' => :'sync_source_items'
63
+ :'sync_source_items' => :'sync_source_items',
64
+ :'incremental_sync' => :'incremental_sync',
65
+ :'file_sync_config' => :'file_sync_config'
59
66
  }
60
67
  end
61
68
 
@@ -79,7 +86,9 @@ module Carbon
79
86
  :'set_page_as_boundary' => :'Boolean',
80
87
  :'request_id' => :'String',
81
88
  :'enable_file_picker' => :'Boolean',
82
- :'sync_source_items' => :'Boolean'
89
+ :'sync_source_items' => :'Boolean',
90
+ :'incremental_sync' => :'Boolean',
91
+ :'file_sync_config' => :'HelpdeskFileSyncConfigNullable'
83
92
  }
84
93
  end
85
94
 
@@ -95,6 +104,7 @@ module Carbon
95
104
  :'prepend_filename_to_chunks',
96
105
  :'max_items_per_chunk',
97
106
  :'sync_files_on_connection',
107
+ :'file_sync_config'
98
108
  ])
99
109
  end
100
110
 
@@ -172,7 +182,7 @@ module Carbon
172
182
  if attributes.key?(:'request_id')
173
183
  self.request_id = attributes[:'request_id']
174
184
  else
175
- self.request_id = '875454df-996d-4d26-83e0-756af9628ed0'
185
+ self.request_id = 'b9a72b38-115a-4dd6-bad9-00185ae2333b'
176
186
  end
177
187
 
178
188
  if attributes.key?(:'enable_file_picker')
@@ -186,6 +196,16 @@ module Carbon
186
196
  else
187
197
  self.sync_source_items = true
188
198
  end
199
+
200
+ if attributes.key?(:'incremental_sync')
201
+ self.incremental_sync = attributes[:'incremental_sync']
202
+ else
203
+ self.incremental_sync = false
204
+ end
205
+
206
+ if attributes.key?(:'file_sync_config')
207
+ self.file_sync_config = attributes[:'file_sync_config']
208
+ end
189
209
  end
190
210
 
191
211
  # Show invalid properties with the reasons. Usually used together with valid?
@@ -218,7 +238,9 @@ module Carbon
218
238
  set_page_as_boundary == o.set_page_as_boundary &&
219
239
  request_id == o.request_id &&
220
240
  enable_file_picker == o.enable_file_picker &&
221
- sync_source_items == o.sync_source_items
241
+ sync_source_items == o.sync_source_items &&
242
+ incremental_sync == o.incremental_sync &&
243
+ file_sync_config == o.file_sync_config
222
244
  end
223
245
 
224
246
  # @see the `==` method
@@ -230,7 +252,7 @@ module Carbon
230
252
  # Calculates hash code according to all attributes.
231
253
  # @return [Integer] Hash code
232
254
  def hash
233
- [tags, chunk_size, chunk_overlap, skip_embedding_generation, embedding_model, generate_sparse_vectors, prepend_filename_to_chunks, max_items_per_chunk, sync_files_on_connection, set_page_as_boundary, request_id, enable_file_picker, sync_source_items].hash
255
+ [tags, chunk_size, chunk_overlap, skip_embedding_generation, embedding_model, generate_sparse_vectors, prepend_filename_to_chunks, max_items_per_chunk, sync_files_on_connection, set_page_as_boundary, request_id, enable_file_picker, sync_source_items, incremental_sync, file_sync_config].hash
234
256
  end
235
257
 
236
258
  # Builds the object from hash
@@ -7,5 +7,5 @@ The version of the OpenAPI document: 1.0.0
7
7
  =end
8
8
 
9
9
  module Carbon
10
- VERSION = '0.1.26'
10
+ VERSION = '0.1.27'
11
11
  end
@@ -67,6 +67,9 @@ require 'carbon_ruby_sdk/models/github_connect_request'
67
67
  require 'carbon_ruby_sdk/models/github_fetch_repos_request'
68
68
  require 'carbon_ruby_sdk/models/gmail_sync_input'
69
69
  require 'carbon_ruby_sdk/models/http_validation_error'
70
+ require 'carbon_ruby_sdk/models/helpdesk_file_sync_config'
71
+ require 'carbon_ruby_sdk/models/helpdesk_file_sync_config_nullable'
72
+ require 'carbon_ruby_sdk/models/helpdesk_file_types'
70
73
  require 'carbon_ruby_sdk/models/hybrid_search_tuning_params'
71
74
  require 'carbon_ruby_sdk/models/hybrid_search_tuning_params_nullable'
72
75
  require 'carbon_ruby_sdk/models/ids_property'
@@ -0,0 +1,34 @@
1
+ =begin
2
+ #Carbon
3
+
4
+ #Connect external data to LLMs, no matter the source.
5
+
6
+ The version of the OpenAPI document: 1.0.0
7
+ =end
8
+
9
+ require 'spec_helper'
10
+ require 'json'
11
+ require 'date'
12
+
13
+ # Unit tests for Carbon::HelpdeskFileSyncConfigNullable
14
+ describe Carbon::HelpdeskFileSyncConfigNullable do
15
+ let(:instance) { Carbon::HelpdeskFileSyncConfigNullable.new }
16
+
17
+ describe 'test an instance of HelpdeskFileSyncConfigNullable' do
18
+ it 'should create an instance of HelpdeskFileSyncConfigNullable' do
19
+ expect(instance).to be_instance_of(Carbon::HelpdeskFileSyncConfigNullable)
20
+ end
21
+ end
22
+ describe 'test attribute "file_types"' do
23
+ it 'should work' do
24
+ # assertion here. ref: https://www.relishapp.com/rspec/rspec-expectations/docs/built-in-matchers
25
+ end
26
+ end
27
+
28
+ describe 'test attribute "sync_attachments"' do
29
+ it 'should work' do
30
+ # assertion here. ref: https://www.relishapp.com/rspec/rspec-expectations/docs/built-in-matchers
31
+ end
32
+ end
33
+
34
+ end
@@ -0,0 +1,34 @@
1
+ =begin
2
+ #Carbon
3
+
4
+ #Connect external data to LLMs, no matter the source.
5
+
6
+ The version of the OpenAPI document: 1.0.0
7
+ =end
8
+
9
+ require 'spec_helper'
10
+ require 'json'
11
+ require 'date'
12
+
13
+ # Unit tests for Carbon::HelpdeskFileSyncConfig
14
+ describe Carbon::HelpdeskFileSyncConfig do
15
+ let(:instance) { Carbon::HelpdeskFileSyncConfig.new }
16
+
17
+ describe 'test an instance of HelpdeskFileSyncConfig' do
18
+ it 'should create an instance of HelpdeskFileSyncConfig' do
19
+ expect(instance).to be_instance_of(Carbon::HelpdeskFileSyncConfig)
20
+ end
21
+ end
22
+ describe 'test attribute "file_types"' do
23
+ it 'should work' do
24
+ # assertion here. ref: https://www.relishapp.com/rspec/rspec-expectations/docs/built-in-matchers
25
+ end
26
+ end
27
+
28
+ describe 'test attribute "sync_attachments"' do
29
+ it 'should work' do
30
+ # assertion here. ref: https://www.relishapp.com/rspec/rspec-expectations/docs/built-in-matchers
31
+ end
32
+ end
33
+
34
+ end
@@ -0,0 +1,22 @@
1
+ =begin
2
+ #Carbon
3
+
4
+ #Connect external data to LLMs, no matter the source.
5
+
6
+ The version of the OpenAPI document: 1.0.0
7
+ =end
8
+
9
+ require 'spec_helper'
10
+ require 'json'
11
+ require 'date'
12
+
13
+ # Unit tests for Carbon::HelpdeskFileTypes
14
+ describe Carbon::HelpdeskFileTypes do
15
+ let(:instance) { Carbon::HelpdeskFileTypes.new }
16
+
17
+ describe 'test an instance of HelpdeskFileTypes' do
18
+ it 'should create an instance of HelpdeskFileTypes' do
19
+ expect(instance).to be_instance_of(Carbon::HelpdeskFileTypes)
20
+ end
21
+ end
22
+ end
@@ -163,4 +163,16 @@ describe Carbon::OAuthURLRequest do
163
163
  end
164
164
  end
165
165
 
166
+ describe 'test attribute "incremental_sync"' do
167
+ it 'should work' do
168
+ # assertion here. ref: https://www.relishapp.com/rspec/rspec-expectations/docs/built-in-matchers
169
+ end
170
+ end
171
+
172
+ describe 'test attribute "file_sync_config"' do
173
+ it 'should work' do
174
+ # assertion here. ref: https://www.relishapp.com/rspec/rspec-expectations/docs/built-in-matchers
175
+ end
176
+ end
177
+
166
178
  end
@@ -103,4 +103,10 @@ describe Carbon::SyncFilesRequest do
103
103
  end
104
104
  end
105
105
 
106
+ describe 'test attribute "incremental_sync"' do
107
+ it 'should work' do
108
+ # assertion here. ref: https://www.relishapp.com/rspec/rspec-expectations/docs/built-in-matchers
109
+ end
110
+ end
111
+
106
112
  end
@@ -97,4 +97,16 @@ describe Carbon::SyncOptions do
97
97
  end
98
98
  end
99
99
 
100
+ describe 'test attribute "incremental_sync"' do
101
+ it 'should work' do
102
+ # assertion here. ref: https://www.relishapp.com/rspec/rspec-expectations/docs/built-in-matchers
103
+ end
104
+ end
105
+
106
+ describe 'test attribute "file_sync_config"' do
107
+ it 'should work' do
108
+ # assertion here. ref: https://www.relishapp.com/rspec/rspec-expectations/docs/built-in-matchers
109
+ end
110
+ end
111
+
100
112
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: carbon_ruby_sdk
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.26
4
+ version: 0.1.27
5
5
  platform: ruby
6
6
  authors:
7
7
  - Konfig
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2024-05-08 00:00:00.000000000 Z
11
+ date: 2024-05-13 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: faraday
@@ -149,6 +149,9 @@ files:
149
149
  - lib/carbon_ruby_sdk/models/github_connect_request.rb
150
150
  - lib/carbon_ruby_sdk/models/github_fetch_repos_request.rb
151
151
  - lib/carbon_ruby_sdk/models/gmail_sync_input.rb
152
+ - lib/carbon_ruby_sdk/models/helpdesk_file_sync_config.rb
153
+ - lib/carbon_ruby_sdk/models/helpdesk_file_sync_config_nullable.rb
154
+ - lib/carbon_ruby_sdk/models/helpdesk_file_types.rb
152
155
  - lib/carbon_ruby_sdk/models/http_validation_error.rb
153
156
  - lib/carbon_ruby_sdk/models/hybrid_search_tuning_params.rb
154
157
  - lib/carbon_ruby_sdk/models/hybrid_search_tuning_params_nullable.rb
@@ -291,6 +294,9 @@ files:
291
294
  - spec/models/github_connect_request_spec.rb
292
295
  - spec/models/github_fetch_repos_request_spec.rb
293
296
  - spec/models/gmail_sync_input_spec.rb
297
+ - spec/models/helpdesk_file_sync_config_nullable_spec.rb
298
+ - spec/models/helpdesk_file_sync_config_spec.rb
299
+ - spec/models/helpdesk_file_types_spec.rb
294
300
  - spec/models/http_validation_error_spec.rb
295
301
  - spec/models/hybrid_search_tuning_params_nullable_spec.rb
296
302
  - spec/models/hybrid_search_tuning_params_spec.rb
@@ -463,6 +469,7 @@ test_files:
463
469
  - spec/models/s3_auth_request_spec.rb
464
470
  - spec/models/sharepoint_authentication_spec.rb
465
471
  - spec/models/zotero_authentication_spec.rb
472
+ - spec/models/helpdesk_file_types_spec.rb
466
473
  - spec/models/document_response_spec.rb
467
474
  - spec/models/data_source_last_sync_actions_spec.rb
468
475
  - spec/models/organization_user_file_tags_remove_spec.rb
@@ -490,6 +497,7 @@ test_files:
490
497
  - spec/models/chunk_properties_spec.rb
491
498
  - spec/models/fetch_urls_response_spec.rb
492
499
  - spec/models/data_source_type_nullable_spec.rb
500
+ - spec/models/helpdesk_file_sync_config_spec.rb
493
501
  - spec/models/http_validation_error_spec.rb
494
502
  - spec/models/embedding_and_chunk_spec.rb
495
503
  - spec/models/tags_spec.rb
@@ -522,6 +530,7 @@ test_files:
522
530
  - spec/models/fresh_desk_connect_request_spec.rb
523
531
  - spec/models/embeddings_and_chunks_filters_spec.rb
524
532
  - spec/models/raw_transcript_property_inner_value_spec.rb
533
+ - spec/models/helpdesk_file_sync_config_nullable_spec.rb
525
534
  - spec/models/delete_users_input_spec.rb
526
535
  - spec/models/webhook_no_key_spec.rb
527
536
  - spec/models/s3_file_sync_input_spec.rb