carbon_ruby_sdk 0.1.25 → 0.1.27

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 52f030ea7716673312a486e5e740dcfd63dd0f9476829d1a4a60450454ba9cd8
4
- data.tar.gz: e92848e3b73bb218c3971309c3115c1b539414284f3e48728e995c84ad3e5c1e
3
+ metadata.gz: 4ac9daf22135c068fcd84189709ef118201beb9d4eab590bf898a4026056e98c
4
+ data.tar.gz: 041716ceb046ef931db5d67446d7a44862af32197c41420c8167aec333e5d66c
5
5
  SHA512:
6
- metadata.gz: 7c3f1177e45e581f8a2a6abdb43e2bb7a7af9b4080859aef1d53e4ec34ba9a3c3505dfa4df51ff66258f8ba5a5d63279025e606d02b10e56a3129723b31d3a9a
7
- data.tar.gz: b7a46ce54599d55341b36f7361d7c67810b19e7d074311ff9b9e9116270ffbaa172fafd8e460aea62e9ab38b152e238cd02b337e2a5e4c601aee3cddb82af6e1
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.24)
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.25-blue)](https://rubygems.org/gems/carbon_ruby_sdk/versions/0.1.25)
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.25'
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" => "18492fc0-bd2f-48d4-a035-8d12f762cc76",
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: "1975f217-47e4-4867-8acd-5bdb2858049b",
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
- BOX, SHAREPOINT, ONEDRIVE, DROPBOX, GOOGLE_DRIVE
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: "a7c990f4-5923-47b5-a9f8-6ef5416fe5c3",
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: "a7c990f4-5923-47b5-a9f8-6ef5416fe5c3",
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: BOX, SHAREPOINT, ONEDRIVE, DROPBOX, GOOGLE_DRIVE
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: '1975f217-47e4-4867-8acd-5bdb2858049b', 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: BOX, SHAREPOINT, ONEDRIVE, DROPBOX, GOOGLE_DRIVE
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: '1975f217-47e4-4867-8acd-5bdb2858049b', 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: 'a7c990f4-5923-47b5-a9f8-6ef5416fe5c3', 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: 'a7c990f4-5923-47b5-a9f8-6ef5416fe5c3', 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: 'a7c990f4-5923-47b5-a9f8-6ef5416fe5c3', 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: 'a7c990f4-5923-47b5-a9f8-6ef5416fe5c3', 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