carbon_ruby_sdk 0.2.28 → 0.2.30
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 +4 -4
- data/Gemfile.lock +5 -7
- data/README.md +109 -6
- data/lib/carbon_ruby_sdk/api/embeddings_api.rb +2 -2
- data/lib/carbon_ruby_sdk/api/files_api.rb +21 -6
- data/lib/carbon_ruby_sdk/api/integrations_api.rb +166 -10
- data/lib/carbon_ruby_sdk/api/utilities_api.rb +6 -2
- data/lib/carbon_ruby_sdk/models/authentication_property.rb +63 -5
- data/lib/carbon_ruby_sdk/models/auto_synced_source_types_property_inner.rb +226 -0
- data/lib/carbon_ruby_sdk/models/data_source_type.rb +4 -1
- data/lib/carbon_ruby_sdk/models/data_source_type_nullable.rb +4 -1
- data/lib/carbon_ruby_sdk/models/external_data_source_type.rb +2 -1
- data/lib/carbon_ruby_sdk/models/file_formats.rb +4 -1
- data/lib/carbon_ruby_sdk/models/file_formats_nullable.rb +4 -1
- data/lib/carbon_ruby_sdk/models/file_sync_config.rb +17 -5
- data/lib/carbon_ruby_sdk/models/file_sync_config_nullable.rb +17 -5
- data/lib/carbon_ruby_sdk/models/get_embedding_documents_body.rb +1 -1
- data/lib/carbon_ruby_sdk/models/guru_authentication.rb +244 -0
- data/lib/carbon_ruby_sdk/models/guru_connect_request.rb +359 -0
- data/lib/carbon_ruby_sdk/models/o_auth_url_request.rb +16 -6
- data/lib/carbon_ruby_sdk/models/organization_user_files_to_sync_filters.rb +1 -1
- data/lib/carbon_ruby_sdk/models/raw_text_input.rb +16 -4
- data/lib/carbon_ruby_sdk/models/service_now_authentication.rb +296 -0
- data/lib/carbon_ruby_sdk/models/service_now_credentials.rb +262 -0
- data/lib/carbon_ruby_sdk/models/service_now_credentials_nullable.rb +263 -0
- data/lib/carbon_ruby_sdk/models/service_now_file_types.rb +37 -0
- data/lib/carbon_ruby_sdk/models/sitemap_scrape_request.rb +17 -5
- data/lib/carbon_ruby_sdk/models/sync_files_request.rb +1 -1
- data/lib/carbon_ruby_sdk/models/sync_options.rb +1 -1
- data/lib/carbon_ruby_sdk/models/upload_file_from_url_input.rb +16 -4
- data/lib/carbon_ruby_sdk/models/webscrape_request.rb +17 -5
- data/lib/carbon_ruby_sdk/version.rb +1 -1
- data/lib/carbon_ruby_sdk.rb +7 -0
- data/spec/api/files_api_spec.rb +1 -0
- data/spec/api/integrations_api_spec.rb +13 -1
- data/spec/models/authentication_property_spec.rb +24 -0
- data/spec/models/auto_synced_source_types_property_inner_spec.rb +22 -0
- data/spec/models/file_sync_config_nullable_spec.rb +6 -0
- data/spec/models/file_sync_config_spec.rb +6 -0
- data/spec/models/guru_authentication_spec.rb +40 -0
- data/spec/models/guru_connect_request_spec.rb +100 -0
- data/spec/models/o_auth_url_request_spec.rb +6 -0
- data/spec/models/raw_text_input_spec.rb +6 -0
- data/spec/models/service_now_authentication_spec.rb +64 -0
- data/spec/models/service_now_credentials_nullable_spec.rb +46 -0
- data/spec/models/service_now_credentials_spec.rb +46 -0
- data/spec/models/service_now_file_types_spec.rb +22 -0
- data/spec/models/sitemap_scrape_request_spec.rb +6 -0
- data/spec/models/upload_file_from_url_input_spec.rb +6 -0
- data/spec/models/webscrape_request_spec.rb +6 -0
- metadata +169 -148
@@ -506,6 +506,154 @@ module Carbon
|
|
506
506
|
end
|
507
507
|
|
508
508
|
|
509
|
+
# Guru Connect
|
510
|
+
#
|
511
|
+
# You will need an access token to connect your Guru account. To obtain an access token, follow the steps highlighted here
|
512
|
+
# https://help.getguru.com/docs/gurus-api#obtaining-a-user-token. The username should be your Guru username.
|
513
|
+
#
|
514
|
+
# @param username [String]
|
515
|
+
# @param access_token [String]
|
516
|
+
# @param tags [Object]
|
517
|
+
# @param chunk_size [Integer]
|
518
|
+
# @param chunk_overlap [Integer]
|
519
|
+
# @param skip_embedding_generation [Boolean]
|
520
|
+
# @param embedding_model [EmbeddingGenerators]
|
521
|
+
# @param generate_sparse_vectors [Boolean]
|
522
|
+
# @param prepend_filename_to_chunks [Boolean]
|
523
|
+
# @param sync_files_on_connection [Boolean]
|
524
|
+
# @param request_id [String]
|
525
|
+
# @param sync_source_items [Boolean] Enabling this flag will fetch all available content from the source to be listed via list items endpoint
|
526
|
+
# @param file_sync_config [FileSyncConfigNullable]
|
527
|
+
# @param body [GuruConnectRequest]
|
528
|
+
# @param [Hash] extra additional parameters to pass along through :header_params, :query_params, or parameter name
|
529
|
+
def connect_guru(username:, access_token:, tags: SENTINEL, chunk_size: 1500, chunk_overlap: 20, skip_embedding_generation: false, embedding_model: 'OPENAI', generate_sparse_vectors: false, prepend_filename_to_chunks: false, sync_files_on_connection: true, request_id: SENTINEL, sync_source_items: true, file_sync_config: SENTINEL, extra: {})
|
530
|
+
_body = {}
|
531
|
+
_body[:tags] = tags if tags != SENTINEL
|
532
|
+
_body[:username] = username if username != SENTINEL
|
533
|
+
_body[:access_token] = access_token if access_token != SENTINEL
|
534
|
+
_body[:chunk_size] = chunk_size if chunk_size != SENTINEL
|
535
|
+
_body[:chunk_overlap] = chunk_overlap if chunk_overlap != SENTINEL
|
536
|
+
_body[:skip_embedding_generation] = skip_embedding_generation if skip_embedding_generation != SENTINEL
|
537
|
+
_body[:embedding_model] = embedding_model if embedding_model != SENTINEL
|
538
|
+
_body[:generate_sparse_vectors] = generate_sparse_vectors if generate_sparse_vectors != SENTINEL
|
539
|
+
_body[:prepend_filename_to_chunks] = prepend_filename_to_chunks if prepend_filename_to_chunks != SENTINEL
|
540
|
+
_body[:sync_files_on_connection] = sync_files_on_connection if sync_files_on_connection != SENTINEL
|
541
|
+
_body[:request_id] = request_id if request_id != SENTINEL
|
542
|
+
_body[:sync_source_items] = sync_source_items if sync_source_items != SENTINEL
|
543
|
+
_body[:file_sync_config] = file_sync_config if file_sync_config != SENTINEL
|
544
|
+
guru_connect_request = _body
|
545
|
+
api_response = connect_guru_with_http_info_impl(guru_connect_request, extra)
|
546
|
+
api_response.data
|
547
|
+
end
|
548
|
+
|
549
|
+
# Guru Connect
|
550
|
+
#
|
551
|
+
# You will need an access token to connect your Guru account. To obtain an access token, follow the steps highlighted here
|
552
|
+
# https://help.getguru.com/docs/gurus-api#obtaining-a-user-token. The username should be your Guru username.
|
553
|
+
#
|
554
|
+
# @param username [String]
|
555
|
+
# @param access_token [String]
|
556
|
+
# @param tags [Object]
|
557
|
+
# @param chunk_size [Integer]
|
558
|
+
# @param chunk_overlap [Integer]
|
559
|
+
# @param skip_embedding_generation [Boolean]
|
560
|
+
# @param embedding_model [EmbeddingGenerators]
|
561
|
+
# @param generate_sparse_vectors [Boolean]
|
562
|
+
# @param prepend_filename_to_chunks [Boolean]
|
563
|
+
# @param sync_files_on_connection [Boolean]
|
564
|
+
# @param request_id [String]
|
565
|
+
# @param sync_source_items [Boolean] Enabling this flag will fetch all available content from the source to be listed via list items endpoint
|
566
|
+
# @param file_sync_config [FileSyncConfigNullable]
|
567
|
+
# @param body [GuruConnectRequest]
|
568
|
+
# @param [Hash] extra additional parameters to pass along through :header_params, :query_params, or parameter name
|
569
|
+
def connect_guru_with_http_info(username:, access_token:, tags: SENTINEL, chunk_size: 1500, chunk_overlap: 20, skip_embedding_generation: false, embedding_model: 'OPENAI', generate_sparse_vectors: false, prepend_filename_to_chunks: false, sync_files_on_connection: true, request_id: SENTINEL, sync_source_items: true, file_sync_config: SENTINEL, extra: {})
|
570
|
+
_body = {}
|
571
|
+
_body[:tags] = tags if tags != SENTINEL
|
572
|
+
_body[:username] = username if username != SENTINEL
|
573
|
+
_body[:access_token] = access_token if access_token != SENTINEL
|
574
|
+
_body[:chunk_size] = chunk_size if chunk_size != SENTINEL
|
575
|
+
_body[:chunk_overlap] = chunk_overlap if chunk_overlap != SENTINEL
|
576
|
+
_body[:skip_embedding_generation] = skip_embedding_generation if skip_embedding_generation != SENTINEL
|
577
|
+
_body[:embedding_model] = embedding_model if embedding_model != SENTINEL
|
578
|
+
_body[:generate_sparse_vectors] = generate_sparse_vectors if generate_sparse_vectors != SENTINEL
|
579
|
+
_body[:prepend_filename_to_chunks] = prepend_filename_to_chunks if prepend_filename_to_chunks != SENTINEL
|
580
|
+
_body[:sync_files_on_connection] = sync_files_on_connection if sync_files_on_connection != SENTINEL
|
581
|
+
_body[:request_id] = request_id if request_id != SENTINEL
|
582
|
+
_body[:sync_source_items] = sync_source_items if sync_source_items != SENTINEL
|
583
|
+
_body[:file_sync_config] = file_sync_config if file_sync_config != SENTINEL
|
584
|
+
guru_connect_request = _body
|
585
|
+
connect_guru_with_http_info_impl(guru_connect_request, extra)
|
586
|
+
end
|
587
|
+
|
588
|
+
# Guru Connect
|
589
|
+
# You will need an access token to connect your Guru account. To obtain an access token, follow the steps highlighted here https://help.getguru.com/docs/gurus-api#obtaining-a-user-token. The username should be your Guru username.
|
590
|
+
# @param guru_connect_request [GuruConnectRequest]
|
591
|
+
# @param [Hash] opts the optional parameters
|
592
|
+
# @return [GenericSuccessResponse]
|
593
|
+
private def connect_guru_impl(guru_connect_request, opts = {})
|
594
|
+
data, _status_code, _headers = connect_guru_with_http_info(guru_connect_request, opts)
|
595
|
+
data
|
596
|
+
end
|
597
|
+
|
598
|
+
# Guru Connect
|
599
|
+
# You will need an access token to connect your Guru account. To obtain an access token, follow the steps highlighted here https://help.getguru.com/docs/gurus-api#obtaining-a-user-token. The username should be your Guru username.
|
600
|
+
# @param guru_connect_request [GuruConnectRequest]
|
601
|
+
# @param [Hash] opts the optional parameters
|
602
|
+
# @return [APIResponse] data is GenericSuccessResponse, status code, headers and response
|
603
|
+
private def connect_guru_with_http_info_impl(guru_connect_request, opts = {})
|
604
|
+
if @api_client.config.debugging
|
605
|
+
@api_client.config.logger.debug 'Calling API: IntegrationsApi.connect_guru ...'
|
606
|
+
end
|
607
|
+
# verify the required parameter 'guru_connect_request' is set
|
608
|
+
if @api_client.config.client_side_validation && guru_connect_request.nil?
|
609
|
+
fail ArgumentError, "Missing the required parameter 'guru_connect_request' when calling IntegrationsApi.connect_guru"
|
610
|
+
end
|
611
|
+
# resource path
|
612
|
+
local_var_path = '/integrations/guru'
|
613
|
+
|
614
|
+
# query parameters
|
615
|
+
query_params = opts[:query_params] || {}
|
616
|
+
|
617
|
+
# header parameters
|
618
|
+
header_params = opts[:header_params] || {}
|
619
|
+
# HTTP header 'Accept' (if needed)
|
620
|
+
header_params['Accept'] = @api_client.select_header_accept(['application/json'])
|
621
|
+
# HTTP header 'Content-Type'
|
622
|
+
content_type = @api_client.select_header_content_type(['application/json'])
|
623
|
+
if !content_type.nil?
|
624
|
+
header_params['Content-Type'] = content_type
|
625
|
+
end
|
626
|
+
|
627
|
+
# form parameters
|
628
|
+
form_params = opts[:form_params] || {}
|
629
|
+
|
630
|
+
# http body (model)
|
631
|
+
post_body = opts[:debug_body] || @api_client.object_to_http_body(guru_connect_request)
|
632
|
+
|
633
|
+
# return_type
|
634
|
+
return_type = opts[:debug_return_type] || 'GenericSuccessResponse'
|
635
|
+
|
636
|
+
# auth_names
|
637
|
+
auth_names = opts[:debug_auth_names] || ['accessToken', 'apiKey', 'customerId']
|
638
|
+
|
639
|
+
new_options = opts.merge(
|
640
|
+
:operation => :"IntegrationsApi.connect_guru",
|
641
|
+
:header_params => header_params,
|
642
|
+
:query_params => query_params,
|
643
|
+
:form_params => form_params,
|
644
|
+
:body => post_body,
|
645
|
+
:auth_names => auth_names,
|
646
|
+
:return_type => return_type
|
647
|
+
)
|
648
|
+
|
649
|
+
data, status_code, headers, response = @api_client.call_api(:POST, local_var_path, new_options)
|
650
|
+
if @api_client.config.debugging
|
651
|
+
@api_client.config.logger.debug "API called: IntegrationsApi#connect_guru\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
|
652
|
+
end
|
653
|
+
APIResponse::new(data, status_code, headers, response)
|
654
|
+
end
|
655
|
+
|
656
|
+
|
509
657
|
# S3 Auth
|
510
658
|
#
|
511
659
|
# This endpoint can be used to connect S3 as well as Digital Ocean Spaces (S3 compatible)
|
@@ -665,12 +813,13 @@ module Carbon
|
|
665
813
|
# @param parse_pdf_tables_with_ocr [Boolean]
|
666
814
|
# @param enable_file_picker [Boolean] Enable integration's file picker for sources that support it. Supported sources: BOX, DROPBOX, GOOGLE_DRIVE, ONEDRIVE, SHAREPOINT
|
667
815
|
# @param sync_source_items [Boolean] Enabling this flag will fetch all available content from the source to be listed via list items endpoint
|
668
|
-
# @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, INTERCOM, GMAIL, OUTLOOK, ZENDESK, CONFLUENCE, NOTION, SHAREPOINT. It will be ignored for other data sources.
|
816
|
+
# @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, INTERCOM, GMAIL, OUTLOOK, ZENDESK, CONFLUENCE, NOTION, SHAREPOINT, SERVICENOW. It will be ignored for other data sources.
|
669
817
|
# @param file_sync_config [FileSyncConfigNullable]
|
670
818
|
# @param automatically_open_file_picker [Boolean] Automatically open source file picker after the OAuth flow is complete. This flag is currently supported by BOX, DROPBOX, GOOGLE_DRIVE, ONEDRIVE, SHAREPOINT. It will be ignored for other data sources.
|
819
|
+
# @param servicenow_credentials [ServiceNowCredentialsNullable]
|
671
820
|
# @param body [OAuthURLRequest]
|
672
821
|
# @param [Hash] extra additional parameters to pass along through :header_params, :query_params, or parameter name
|
673
|
-
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: SENTINEL, use_ocr: false, parse_pdf_tables_with_ocr: false, enable_file_picker: true, sync_source_items: true, incremental_sync: false, file_sync_config: SENTINEL, automatically_open_file_picker: SENTINEL, extra: {})
|
822
|
+
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: SENTINEL, use_ocr: false, parse_pdf_tables_with_ocr: false, enable_file_picker: true, sync_source_items: true, incremental_sync: false, file_sync_config: SENTINEL, automatically_open_file_picker: SENTINEL, servicenow_credentials: SENTINEL, extra: {})
|
674
823
|
_body = {}
|
675
824
|
_body[:tags] = tags if tags != SENTINEL
|
676
825
|
_body[:scope] = scope if scope != SENTINEL
|
@@ -699,6 +848,7 @@ module Carbon
|
|
699
848
|
_body[:incremental_sync] = incremental_sync if incremental_sync != SENTINEL
|
700
849
|
_body[:file_sync_config] = file_sync_config if file_sync_config != SENTINEL
|
701
850
|
_body[:automatically_open_file_picker] = automatically_open_file_picker if automatically_open_file_picker != SENTINEL
|
851
|
+
_body[:servicenow_credentials] = servicenow_credentials if servicenow_credentials != SENTINEL
|
702
852
|
o_auth_url_request = _body
|
703
853
|
api_response = get_oauth_url_with_http_info_impl(o_auth_url_request, extra)
|
704
854
|
api_response.data
|
@@ -735,12 +885,13 @@ module Carbon
|
|
735
885
|
# @param parse_pdf_tables_with_ocr [Boolean]
|
736
886
|
# @param enable_file_picker [Boolean] Enable integration's file picker for sources that support it. Supported sources: BOX, DROPBOX, GOOGLE_DRIVE, ONEDRIVE, SHAREPOINT
|
737
887
|
# @param sync_source_items [Boolean] Enabling this flag will fetch all available content from the source to be listed via list items endpoint
|
738
|
-
# @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, INTERCOM, GMAIL, OUTLOOK, ZENDESK, CONFLUENCE, NOTION, SHAREPOINT. It will be ignored for other data sources.
|
888
|
+
# @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, INTERCOM, GMAIL, OUTLOOK, ZENDESK, CONFLUENCE, NOTION, SHAREPOINT, SERVICENOW. It will be ignored for other data sources.
|
739
889
|
# @param file_sync_config [FileSyncConfigNullable]
|
740
890
|
# @param automatically_open_file_picker [Boolean] Automatically open source file picker after the OAuth flow is complete. This flag is currently supported by BOX, DROPBOX, GOOGLE_DRIVE, ONEDRIVE, SHAREPOINT. It will be ignored for other data sources.
|
891
|
+
# @param servicenow_credentials [ServiceNowCredentialsNullable]
|
741
892
|
# @param body [OAuthURLRequest]
|
742
893
|
# @param [Hash] extra additional parameters to pass along through :header_params, :query_params, or parameter name
|
743
|
-
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: SENTINEL, use_ocr: false, parse_pdf_tables_with_ocr: false, enable_file_picker: true, sync_source_items: true, incremental_sync: false, file_sync_config: SENTINEL, automatically_open_file_picker: SENTINEL, extra: {})
|
894
|
+
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: SENTINEL, use_ocr: false, parse_pdf_tables_with_ocr: false, enable_file_picker: true, sync_source_items: true, incremental_sync: false, file_sync_config: SENTINEL, automatically_open_file_picker: SENTINEL, servicenow_credentials: SENTINEL, extra: {})
|
744
895
|
_body = {}
|
745
896
|
_body[:tags] = tags if tags != SENTINEL
|
746
897
|
_body[:scope] = scope if scope != SENTINEL
|
@@ -769,6 +920,7 @@ module Carbon
|
|
769
920
|
_body[:incremental_sync] = incremental_sync if incremental_sync != SENTINEL
|
770
921
|
_body[:file_sync_config] = file_sync_config if file_sync_config != SENTINEL
|
771
922
|
_body[:automatically_open_file_picker] = automatically_open_file_picker if automatically_open_file_picker != SENTINEL
|
923
|
+
_body[:servicenow_credentials] = servicenow_credentials if servicenow_credentials != SENTINEL
|
772
924
|
o_auth_url_request = _body
|
773
925
|
get_oauth_url_with_http_info_impl(o_auth_url_request, extra)
|
774
926
|
end
|
@@ -1656,7 +1808,7 @@ module Carbon
|
|
1656
1808
|
# @param request_id [String]
|
1657
1809
|
# @param use_ocr [Boolean]
|
1658
1810
|
# @param parse_pdf_tables_with_ocr [Boolean]
|
1659
|
-
# @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, INTERCOM, GMAIL, OUTLOOK, ZENDESK, CONFLUENCE, NOTION, SHAREPOINT. It will be ignored for other data sources.
|
1811
|
+
# @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, INTERCOM, GMAIL, OUTLOOK, ZENDESK, CONFLUENCE, NOTION, SHAREPOINT, SERVICENOW. It will be ignored for other data sources.
|
1660
1812
|
# @param file_sync_config [FileSyncConfigNullable]
|
1661
1813
|
# @param body [SyncFilesRequest]
|
1662
1814
|
# @param [Hash] extra additional parameters to pass along through :header_params, :query_params, or parameter name
|
@@ -1706,7 +1858,7 @@ module Carbon
|
|
1706
1858
|
# @param request_id [String]
|
1707
1859
|
# @param use_ocr [Boolean]
|
1708
1860
|
# @param parse_pdf_tables_with_ocr [Boolean]
|
1709
|
-
# @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, INTERCOM, GMAIL, OUTLOOK, ZENDESK, CONFLUENCE, NOTION, SHAREPOINT. It will be ignored for other data sources.
|
1861
|
+
# @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, INTERCOM, GMAIL, OUTLOOK, ZENDESK, CONFLUENCE, NOTION, SHAREPOINT, SERVICENOW. It will be ignored for other data sources.
|
1710
1862
|
# @param file_sync_config [FileSyncConfigNullable]
|
1711
1863
|
# @param body [SyncFilesRequest]
|
1712
1864
|
# @param [Hash] extra additional parameters to pass along through :header_params, :query_params, or parameter name
|
@@ -1914,7 +2066,7 @@ module Carbon
|
|
1914
2066
|
# @param request_id [String]
|
1915
2067
|
# @param use_ocr [Boolean]
|
1916
2068
|
# @param parse_pdf_tables_with_ocr [Boolean]
|
1917
|
-
# @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, INTERCOM, GMAIL, OUTLOOK, ZENDESK, CONFLUENCE, NOTION, SHAREPOINT. It will be ignored for other data sources.
|
2069
|
+
# @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, INTERCOM, GMAIL, OUTLOOK, ZENDESK, CONFLUENCE, NOTION, SHAREPOINT, SERVICENOW. It will be ignored for other data sources.
|
1918
2070
|
# @param file_sync_config [FileSyncConfigNullable]
|
1919
2071
|
# @param body [SyncFilesRequest]
|
1920
2072
|
# @param [Hash] extra additional parameters to pass along through :header_params, :query_params, or parameter name
|
@@ -1962,7 +2114,7 @@ module Carbon
|
|
1962
2114
|
# @param request_id [String]
|
1963
2115
|
# @param use_ocr [Boolean]
|
1964
2116
|
# @param parse_pdf_tables_with_ocr [Boolean]
|
1965
|
-
# @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, INTERCOM, GMAIL, OUTLOOK, ZENDESK, CONFLUENCE, NOTION, SHAREPOINT. It will be ignored for other data sources.
|
2117
|
+
# @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, INTERCOM, GMAIL, OUTLOOK, ZENDESK, CONFLUENCE, NOTION, SHAREPOINT, SERVICENOW. It will be ignored for other data sources.
|
1966
2118
|
# @param file_sync_config [FileSyncConfigNullable]
|
1967
2119
|
# @param body [SyncFilesRequest]
|
1968
2120
|
# @param [Hash] extra additional parameters to pass along through :header_params, :query_params, or parameter name
|
@@ -2315,6 +2467,8 @@ module Carbon
|
|
2315
2467
|
# <b>is</b>: Can have the following values - starred, important, snoozed, and unread
|
2316
2468
|
# <b>from</b>: Email address of the sender
|
2317
2469
|
# <b>to</b>: Email address of the recipient
|
2470
|
+
# <b>in</b>: Can have the following values - sent (sync emails sent by the user)
|
2471
|
+
# <b>has</b>: Can have the following values - attachment (sync emails that have attachments)
|
2318
2472
|
#
|
2319
2473
|
# Using keys or values outside of the specified values can lead to unexpected behaviour.
|
2320
2474
|
#
|
@@ -2405,6 +2559,8 @@ module Carbon
|
|
2405
2559
|
# <b>is</b>: Can have the following values - starred, important, snoozed, and unread
|
2406
2560
|
# <b>from</b>: Email address of the sender
|
2407
2561
|
# <b>to</b>: Email address of the recipient
|
2562
|
+
# <b>in</b>: Can have the following values - sent (sync emails sent by the user)
|
2563
|
+
# <b>has</b>: Can have the following values - attachment (sync emails that have attachments)
|
2408
2564
|
#
|
2409
2565
|
# Using keys or values outside of the specified values can lead to unexpected behaviour.
|
2410
2566
|
#
|
@@ -2483,7 +2639,7 @@ module Carbon
|
|
2483
2639
|
end
|
2484
2640
|
|
2485
2641
|
# Gmail Sync
|
2486
|
-
# Once you have successfully connected your gmail account, you can choose which emails to sync with us using the filters parameter. Filters is a JSON object with key value pairs. It also supports AND and OR operations. For now, we support a limited set of keys listed below. <b>label</b>: Inbuilt Gmail labels, for example \"Important\" or a custom label you created. <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. <b>is</b>: Can have the following values - starred, important, snoozed, and unread <b>from</b>: Email address of the sender <b>to</b>: Email address of the recipient Using keys or values outside of the specified values can lead to unexpected behaviour. An example of a basic query with filters can be ```json { \"filters\": { \"key\": \"label\", \"value\": \"Test\" } } ``` Which will list all emails that have the label \"Test\". You can use AND and OR operation in the following way: ```json { \"filters\": { \"AND\": [ { \"key\": \"after\", \"value\": \"2024/01/07\" }, { \"OR\": [ { \"key\": \"label\", \"value\": \"Personal\" }, { \"key\": \"is\", \"value\": \"starred\" } ] } ] } } ``` This will return emails after 7th of Jan that are either starred or have the label \"Personal\". 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 in the above example.
|
2642
|
+
# Once you have successfully connected your gmail account, you can choose which emails to sync with us using the filters parameter. Filters is a JSON object with key value pairs. It also supports AND and OR operations. For now, we support a limited set of keys listed below. <b>label</b>: Inbuilt Gmail labels, for example \"Important\" or a custom label you created. <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. <b>is</b>: Can have the following values - starred, important, snoozed, and unread <b>from</b>: Email address of the sender <b>to</b>: Email address of the recipient <b>in</b>: Can have the following values - sent (sync emails sent by the user) <b>has</b>: Can have the following values - attachment (sync emails that have attachments) Using keys or values outside of the specified values can lead to unexpected behaviour. An example of a basic query with filters can be ```json { \"filters\": { \"key\": \"label\", \"value\": \"Test\" } } ``` Which will list all emails that have the label \"Test\". You can use AND and OR operation in the following way: ```json { \"filters\": { \"AND\": [ { \"key\": \"after\", \"value\": \"2024/01/07\" }, { \"OR\": [ { \"key\": \"label\", \"value\": \"Personal\" }, { \"key\": \"is\", \"value\": \"starred\" } ] } ] } } ``` This will return emails after 7th of Jan that are either starred or have the label \"Personal\". 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 in the above example.
|
2487
2643
|
# @param gmail_sync_input [GmailSyncInput]
|
2488
2644
|
# @param [Hash] opts the optional parameters
|
2489
2645
|
# @return [GenericSuccessResponse]
|
@@ -2493,7 +2649,7 @@ module Carbon
|
|
2493
2649
|
end
|
2494
2650
|
|
2495
2651
|
# Gmail Sync
|
2496
|
-
# Once you have successfully connected your gmail account, you can choose which emails to sync with us using the filters parameter. Filters is a JSON object with key value pairs. It also supports AND and OR operations. For now, we support a limited set of keys listed below. <b>label</b>: Inbuilt Gmail labels, for example \"Important\" or a custom label you created. <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. <b>is</b>: Can have the following values - starred, important, snoozed, and unread <b>from</b>: Email address of the sender <b>to</b>: Email address of the recipient Using keys or values outside of the specified values can lead to unexpected behaviour. An example of a basic query with filters can be ```json { \"filters\": { \"key\": \"label\", \"value\": \"Test\" } } ``` Which will list all emails that have the label \"Test\". You can use AND and OR operation in the following way: ```json { \"filters\": { \"AND\": [ { \"key\": \"after\", \"value\": \"2024/01/07\" }, { \"OR\": [ { \"key\": \"label\", \"value\": \"Personal\" }, { \"key\": \"is\", \"value\": \"starred\" } ] } ] } } ``` This will return emails after 7th of Jan that are either starred or have the label \"Personal\". 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 in the above example.
|
2652
|
+
# Once you have successfully connected your gmail account, you can choose which emails to sync with us using the filters parameter. Filters is a JSON object with key value pairs. It also supports AND and OR operations. For now, we support a limited set of keys listed below. <b>label</b>: Inbuilt Gmail labels, for example \"Important\" or a custom label you created. <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. <b>is</b>: Can have the following values - starred, important, snoozed, and unread <b>from</b>: Email address of the sender <b>to</b>: Email address of the recipient <b>in</b>: Can have the following values - sent (sync emails sent by the user) <b>has</b>: Can have the following values - attachment (sync emails that have attachments) Using keys or values outside of the specified values can lead to unexpected behaviour. An example of a basic query with filters can be ```json { \"filters\": { \"key\": \"label\", \"value\": \"Test\" } } ``` Which will list all emails that have the label \"Test\". You can use AND and OR operation in the following way: ```json { \"filters\": { \"AND\": [ { \"key\": \"after\", \"value\": \"2024/01/07\" }, { \"OR\": [ { \"key\": \"label\", \"value\": \"Personal\" }, { \"key\": \"is\", \"value\": \"starred\" } ] } ] } } ``` This will return emails after 7th of Jan that are either starred or have the label \"Personal\". 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 in the above example.
|
2497
2653
|
# @param gmail_sync_input [GmailSyncInput]
|
2498
2654
|
# @param [Hash] opts the optional parameters
|
2499
2655
|
# @return [APIResponse] data is GenericSuccessResponse, status code, headers and response
|
@@ -438,9 +438,10 @@ module Carbon
|
|
438
438
|
# @param url_paths_to_exclude [Array<String>] URL subpaths or directories that you want to exclude. For example if you want to exclude URLs that start with /questions in stackoverflow.com, you will add /questions/ in this input
|
439
439
|
# @param urls_to_scrape [Array<String>] You can submit a subset of URLs from the sitemap that should be scraped. To get the list of URLs, you can check out /process_sitemap endpoint. If left empty, all URLs from the sitemap will be scraped.
|
440
440
|
# @param download_css_and_media [Boolean] Whether the scraper should download css and media from the page (images, fonts, etc). Scrapes might take longer to finish with this flag enabled, but the success rate is improved.
|
441
|
+
# @param generate_chunks_only [Boolean] If this flag is enabled, the file will be chunked and stored with Carbon, but no embeddings will be generated. This overrides the skip_embedding_generation flag.
|
441
442
|
# @param body [SitemapScrapeRequest]
|
442
443
|
# @param [Hash] extra additional parameters to pass along through :header_params, :query_params, or parameter name
|
443
|
-
def scrape_sitemap(url:, tags: SENTINEL, max_pages_to_scrape: SENTINEL, chunk_size: 1500, chunk_overlap: 20, skip_embedding_generation: false, enable_auto_sync: false, generate_sparse_vectors: false, prepend_filename_to_chunks: false, html_tags_to_skip: SENTINEL, css_classes_to_skip: SENTINEL, css_selectors_to_skip: SENTINEL, embedding_model: 'OPENAI', url_paths_to_include: SENTINEL, url_paths_to_exclude: SENTINEL, urls_to_scrape: SENTINEL, download_css_and_media: false, extra: {})
|
444
|
+
def scrape_sitemap(url:, tags: SENTINEL, max_pages_to_scrape: SENTINEL, chunk_size: 1500, chunk_overlap: 20, skip_embedding_generation: false, enable_auto_sync: false, generate_sparse_vectors: false, prepend_filename_to_chunks: false, html_tags_to_skip: SENTINEL, css_classes_to_skip: SENTINEL, css_selectors_to_skip: SENTINEL, embedding_model: 'OPENAI', url_paths_to_include: SENTINEL, url_paths_to_exclude: SENTINEL, urls_to_scrape: SENTINEL, download_css_and_media: false, generate_chunks_only: false, extra: {})
|
444
445
|
_body = {}
|
445
446
|
_body[:tags] = tags if tags != SENTINEL
|
446
447
|
_body[:url] = url if url != SENTINEL
|
@@ -459,6 +460,7 @@ module Carbon
|
|
459
460
|
_body[:url_paths_to_exclude] = url_paths_to_exclude if url_paths_to_exclude != SENTINEL
|
460
461
|
_body[:urls_to_scrape] = urls_to_scrape if urls_to_scrape != SENTINEL
|
461
462
|
_body[:download_css_and_media] = download_css_and_media if download_css_and_media != SENTINEL
|
463
|
+
_body[:generate_chunks_only] = generate_chunks_only if generate_chunks_only != SENTINEL
|
462
464
|
sitemap_scrape_request = _body
|
463
465
|
api_response = scrape_sitemap_with_http_info_impl(sitemap_scrape_request, extra)
|
464
466
|
api_response.data
|
@@ -491,9 +493,10 @@ module Carbon
|
|
491
493
|
# @param url_paths_to_exclude [Array<String>] URL subpaths or directories that you want to exclude. For example if you want to exclude URLs that start with /questions in stackoverflow.com, you will add /questions/ in this input
|
492
494
|
# @param urls_to_scrape [Array<String>] You can submit a subset of URLs from the sitemap that should be scraped. To get the list of URLs, you can check out /process_sitemap endpoint. If left empty, all URLs from the sitemap will be scraped.
|
493
495
|
# @param download_css_and_media [Boolean] Whether the scraper should download css and media from the page (images, fonts, etc). Scrapes might take longer to finish with this flag enabled, but the success rate is improved.
|
496
|
+
# @param generate_chunks_only [Boolean] If this flag is enabled, the file will be chunked and stored with Carbon, but no embeddings will be generated. This overrides the skip_embedding_generation flag.
|
494
497
|
# @param body [SitemapScrapeRequest]
|
495
498
|
# @param [Hash] extra additional parameters to pass along through :header_params, :query_params, or parameter name
|
496
|
-
def scrape_sitemap_with_http_info(url:, tags: SENTINEL, max_pages_to_scrape: SENTINEL, chunk_size: 1500, chunk_overlap: 20, skip_embedding_generation: false, enable_auto_sync: false, generate_sparse_vectors: false, prepend_filename_to_chunks: false, html_tags_to_skip: SENTINEL, css_classes_to_skip: SENTINEL, css_selectors_to_skip: SENTINEL, embedding_model: 'OPENAI', url_paths_to_include: SENTINEL, url_paths_to_exclude: SENTINEL, urls_to_scrape: SENTINEL, download_css_and_media: false, extra: {})
|
499
|
+
def scrape_sitemap_with_http_info(url:, tags: SENTINEL, max_pages_to_scrape: SENTINEL, chunk_size: 1500, chunk_overlap: 20, skip_embedding_generation: false, enable_auto_sync: false, generate_sparse_vectors: false, prepend_filename_to_chunks: false, html_tags_to_skip: SENTINEL, css_classes_to_skip: SENTINEL, css_selectors_to_skip: SENTINEL, embedding_model: 'OPENAI', url_paths_to_include: SENTINEL, url_paths_to_exclude: SENTINEL, urls_to_scrape: SENTINEL, download_css_and_media: false, generate_chunks_only: false, extra: {})
|
497
500
|
_body = {}
|
498
501
|
_body[:tags] = tags if tags != SENTINEL
|
499
502
|
_body[:url] = url if url != SENTINEL
|
@@ -512,6 +515,7 @@ module Carbon
|
|
512
515
|
_body[:url_paths_to_exclude] = url_paths_to_exclude if url_paths_to_exclude != SENTINEL
|
513
516
|
_body[:urls_to_scrape] = urls_to_scrape if urls_to_scrape != SENTINEL
|
514
517
|
_body[:download_css_and_media] = download_css_and_media if download_css_and_media != SENTINEL
|
518
|
+
_body[:generate_chunks_only] = generate_chunks_only if generate_chunks_only != SENTINEL
|
515
519
|
sitemap_scrape_request = _body
|
516
520
|
scrape_sitemap_with_http_info_impl(sitemap_scrape_request, extra)
|
517
521
|
end
|
@@ -44,6 +44,14 @@ module Carbon
|
|
44
44
|
# You can specify a Digital Ocean endpoint URL to connect a Digital Ocean Space through this endpoint. The URL should be of format <region>.digitaloceanspaces.com. It's not required for S3 buckets.
|
45
45
|
attr_accessor :endpoint_url
|
46
46
|
|
47
|
+
attr_accessor :instance_subdomain
|
48
|
+
|
49
|
+
attr_accessor :client_id
|
50
|
+
|
51
|
+
attr_accessor :client_secret
|
52
|
+
|
53
|
+
attr_accessor :redirect_uri
|
54
|
+
|
47
55
|
# Attribute mapping from ruby-style variable name to JSON key.
|
48
56
|
def self.attribute_map
|
49
57
|
{
|
@@ -62,7 +70,11 @@ module Carbon
|
|
62
70
|
:'api_key' => :'api_key',
|
63
71
|
:'access_key' => :'access_key',
|
64
72
|
:'access_key_secret' => :'access_key_secret',
|
65
|
-
:'endpoint_url' => :'endpoint_url'
|
73
|
+
:'endpoint_url' => :'endpoint_url',
|
74
|
+
:'instance_subdomain' => :'instance_subdomain',
|
75
|
+
:'client_id' => :'client_id',
|
76
|
+
:'client_secret' => :'client_secret',
|
77
|
+
:'redirect_uri' => :'redirect_uri'
|
66
78
|
}
|
67
79
|
end
|
68
80
|
|
@@ -89,7 +101,11 @@ module Carbon
|
|
89
101
|
:'api_key' => :'String',
|
90
102
|
:'access_key' => :'String',
|
91
103
|
:'access_key_secret' => :'String',
|
92
|
-
:'endpoint_url' => :'String'
|
104
|
+
:'endpoint_url' => :'String',
|
105
|
+
:'instance_subdomain' => :'String',
|
106
|
+
:'client_id' => :'String',
|
107
|
+
:'client_secret' => :'String',
|
108
|
+
:'redirect_uri' => :'String'
|
93
109
|
}
|
94
110
|
end
|
95
111
|
|
@@ -98,7 +114,7 @@ module Carbon
|
|
98
114
|
Set.new([
|
99
115
|
:'source',
|
100
116
|
:'refresh_token',
|
101
|
-
:'endpoint_url'
|
117
|
+
:'endpoint_url',
|
102
118
|
])
|
103
119
|
end
|
104
120
|
|
@@ -109,10 +125,12 @@ module Carbon
|
|
109
125
|
:'FreskdeskAuthentication',
|
110
126
|
:'GitbookAuthetication',
|
111
127
|
:'GithubAuthentication',
|
128
|
+
:'GuruAuthentication',
|
112
129
|
:'NotionAuthentication',
|
113
130
|
:'OAuthAuthentication',
|
114
131
|
:'S3Authentication',
|
115
132
|
:'SalesforceAuthentication',
|
133
|
+
:'ServiceNowAuthentication',
|
116
134
|
:'SharepointAuthentication',
|
117
135
|
:'ZendeskAuthentication',
|
118
136
|
:'ZoteroAuthentication'
|
@@ -197,6 +215,22 @@ module Carbon
|
|
197
215
|
if attributes.key?(:'endpoint_url')
|
198
216
|
self.endpoint_url = attributes[:'endpoint_url']
|
199
217
|
end
|
218
|
+
|
219
|
+
if attributes.key?(:'instance_subdomain')
|
220
|
+
self.instance_subdomain = attributes[:'instance_subdomain']
|
221
|
+
end
|
222
|
+
|
223
|
+
if attributes.key?(:'client_id')
|
224
|
+
self.client_id = attributes[:'client_id']
|
225
|
+
end
|
226
|
+
|
227
|
+
if attributes.key?(:'client_secret')
|
228
|
+
self.client_secret = attributes[:'client_secret']
|
229
|
+
end
|
230
|
+
|
231
|
+
if attributes.key?(:'redirect_uri')
|
232
|
+
self.redirect_uri = attributes[:'redirect_uri']
|
233
|
+
end
|
200
234
|
end
|
201
235
|
|
202
236
|
# Show invalid properties with the reasons. Usually used together with valid?
|
@@ -255,6 +289,22 @@ module Carbon
|
|
255
289
|
invalid_properties.push('invalid value for "access_key_secret", access_key_secret cannot be nil.')
|
256
290
|
end
|
257
291
|
|
292
|
+
if @instance_subdomain.nil?
|
293
|
+
invalid_properties.push('invalid value for "instance_subdomain", instance_subdomain cannot be nil.')
|
294
|
+
end
|
295
|
+
|
296
|
+
if @client_id.nil?
|
297
|
+
invalid_properties.push('invalid value for "client_id", client_id cannot be nil.')
|
298
|
+
end
|
299
|
+
|
300
|
+
if @client_secret.nil?
|
301
|
+
invalid_properties.push('invalid value for "client_secret", client_secret cannot be nil.')
|
302
|
+
end
|
303
|
+
|
304
|
+
if @redirect_uri.nil?
|
305
|
+
invalid_properties.push('invalid value for "redirect_uri", redirect_uri cannot be nil.')
|
306
|
+
end
|
307
|
+
|
258
308
|
invalid_properties
|
259
309
|
end
|
260
310
|
|
@@ -274,6 +324,10 @@ module Carbon
|
|
274
324
|
return false if @api_key.nil?
|
275
325
|
return false if @access_key.nil?
|
276
326
|
return false if @access_key_secret.nil?
|
327
|
+
return false if @instance_subdomain.nil?
|
328
|
+
return false if @client_id.nil?
|
329
|
+
return false if @client_secret.nil?
|
330
|
+
return false if @redirect_uri.nil?
|
277
331
|
_any_of_found = false
|
278
332
|
self.class.openapi_any_of.each do |_class|
|
279
333
|
_any_of = Carbon.const_get(_class).build_from_hash(self.to_hash)
|
@@ -309,7 +363,11 @@ module Carbon
|
|
309
363
|
api_key == o.api_key &&
|
310
364
|
access_key == o.access_key &&
|
311
365
|
access_key_secret == o.access_key_secret &&
|
312
|
-
endpoint_url == o.endpoint_url
|
366
|
+
endpoint_url == o.endpoint_url &&
|
367
|
+
instance_subdomain == o.instance_subdomain &&
|
368
|
+
client_id == o.client_id &&
|
369
|
+
client_secret == o.client_secret &&
|
370
|
+
redirect_uri == o.redirect_uri
|
313
371
|
end
|
314
372
|
|
315
373
|
# @see the `==` method
|
@@ -321,7 +379,7 @@ module Carbon
|
|
321
379
|
# Calculates hash code according to all attributes.
|
322
380
|
# @return [Integer] Hash code
|
323
381
|
def hash
|
324
|
-
[source, access_token, refresh_token, workspace_id, tenant_name, site_name, subdomain, access_token_secret, username, zotero_id, organization_name, domain, api_key, access_key, access_key_secret, endpoint_url].hash
|
382
|
+
[source, access_token, refresh_token, workspace_id, tenant_name, site_name, subdomain, access_token_secret, username, zotero_id, organization_name, domain, api_key, access_key, access_key_secret, endpoint_url, instance_subdomain, client_id, client_secret, redirect_uri].hash
|
325
383
|
end
|
326
384
|
|
327
385
|
# Builds the object from hash
|