carbon_ruby_sdk 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (228) hide show
  1. checksums.yaml +7 -0
  2. data/Gemfile +11 -0
  3. data/Gemfile.lock +89 -0
  4. data/README.md +2325 -0
  5. data/Rakefile +10 -0
  6. data/carbon_ruby_sdk.gemspec +39 -0
  7. data/header.png +0 -0
  8. data/lib/carbon_ruby_sdk/api/auth_api.rb +177 -0
  9. data/lib/carbon_ruby_sdk/api/data_sources_api.rb +217 -0
  10. data/lib/carbon_ruby_sdk/api/embeddings_api.rb +565 -0
  11. data/lib/carbon_ruby_sdk/api/files_api.rb +1526 -0
  12. data/lib/carbon_ruby_sdk/api/health_api.rb +92 -0
  13. data/lib/carbon_ruby_sdk/api/integrations_api.rb +2201 -0
  14. data/lib/carbon_ruby_sdk/api/organizations_api.rb +92 -0
  15. data/lib/carbon_ruby_sdk/api/users_api.rb +209 -0
  16. data/lib/carbon_ruby_sdk/api/utilities_api.rb +710 -0
  17. data/lib/carbon_ruby_sdk/api/webhooks_api.rb +296 -0
  18. data/lib/carbon_ruby_sdk/api_client.rb +436 -0
  19. data/lib/carbon_ruby_sdk/api_client_custom.rb +14 -0
  20. data/lib/carbon_ruby_sdk/api_error.rb +53 -0
  21. data/lib/carbon_ruby_sdk/configuration.rb +354 -0
  22. data/lib/carbon_ruby_sdk/models/add_webhook_props.rb +220 -0
  23. data/lib/carbon_ruby_sdk/models/body_create_upload_file_uploadfile_post.rb +220 -0
  24. data/lib/carbon_ruby_sdk/models/chunk_properties.rb +248 -0
  25. data/lib/carbon_ruby_sdk/models/chunk_properties_nullable.rb +248 -0
  26. data/lib/carbon_ruby_sdk/models/chunks_and_embeddings.rb +246 -0
  27. data/lib/carbon_ruby_sdk/models/chunks_and_embeddings_upload_input.rb +247 -0
  28. data/lib/carbon_ruby_sdk/models/data_source_last_sync_actions.rb +38 -0
  29. data/lib/carbon_ruby_sdk/models/data_source_sync_statuses.rb +38 -0
  30. data/lib/carbon_ruby_sdk/models/data_source_type.rb +76 -0
  31. data/lib/carbon_ruby_sdk/models/data_source_type_nullable.rb +76 -0
  32. data/lib/carbon_ruby_sdk/models/delete_files_query_input.rb +252 -0
  33. data/lib/carbon_ruby_sdk/models/directory_item.rb +266 -0
  34. data/lib/carbon_ruby_sdk/models/document_response.rb +328 -0
  35. data/lib/carbon_ruby_sdk/models/document_response_list.rb +222 -0
  36. data/lib/carbon_ruby_sdk/models/embedding_and_chunk.rb +256 -0
  37. data/lib/carbon_ruby_sdk/models/embedding_generators.rb +43 -0
  38. data/lib/carbon_ruby_sdk/models/embedding_generators_nullable.rb +43 -0
  39. data/lib/carbon_ruby_sdk/models/embedding_properties.rb +226 -0
  40. data/lib/carbon_ruby_sdk/models/embeddings_and_chunks_filters.rb +232 -0
  41. data/lib/carbon_ruby_sdk/models/embeddings_and_chunks_order_by_columns.rb +37 -0
  42. data/lib/carbon_ruby_sdk/models/embeddings_and_chunks_query_input.rb +262 -0
  43. data/lib/carbon_ruby_sdk/models/embeddings_and_chunks_response.rb +236 -0
  44. data/lib/carbon_ruby_sdk/models/external_file_sync_statuses.rb +43 -0
  45. data/lib/carbon_ruby_sdk/models/external_source_item.rb +420 -0
  46. data/lib/carbon_ruby_sdk/models/fetch_urls_response.rb +236 -0
  47. data/lib/carbon_ruby_sdk/models/file_content_types.rb +36 -0
  48. data/lib/carbon_ruby_sdk/models/file_content_types_nullable.rb +36 -0
  49. data/lib/carbon_ruby_sdk/models/file_formats.rb +76 -0
  50. data/lib/carbon_ruby_sdk/models/file_formats_nullable.rb +76 -0
  51. data/lib/carbon_ruby_sdk/models/file_statistics.rb +256 -0
  52. data/lib/carbon_ruby_sdk/models/file_statistics_nullable.rb +256 -0
  53. data/lib/carbon_ruby_sdk/models/fresh_desk_connect_request.rb +316 -0
  54. data/lib/carbon_ruby_sdk/models/generic_success_response.rb +220 -0
  55. data/lib/carbon_ruby_sdk/models/get_embedding_documents_body.rb +416 -0
  56. data/lib/carbon_ruby_sdk/models/gitbook_connect_request.rb +234 -0
  57. data/lib/carbon_ruby_sdk/models/gitbook_sync_request.rb +336 -0
  58. data/lib/carbon_ruby_sdk/models/gmail_sync_input.rb +301 -0
  59. data/lib/carbon_ruby_sdk/models/http_validation_error.rb +217 -0
  60. data/lib/carbon_ruby_sdk/models/hybrid_search_tuning_params.rb +234 -0
  61. data/lib/carbon_ruby_sdk/models/hybrid_search_tuning_params_nullable.rb +235 -0
  62. data/lib/carbon_ruby_sdk/models/list_data_source_items_request.rb +239 -0
  63. data/lib/carbon_ruby_sdk/models/list_data_source_items_response.rb +236 -0
  64. data/lib/carbon_ruby_sdk/models/list_request.rb +230 -0
  65. data/lib/carbon_ruby_sdk/models/list_response.rb +222 -0
  66. data/lib/carbon_ruby_sdk/models/location_property_inner.rb +226 -0
  67. data/lib/carbon_ruby_sdk/models/modify_user_configuration_input.rb +234 -0
  68. data/lib/carbon_ruby_sdk/models/o_auth_url_request.rb +362 -0
  69. data/lib/carbon_ruby_sdk/models/order_dir.rb +36 -0
  70. data/lib/carbon_ruby_sdk/models/organization_response.rb +362 -0
  71. data/lib/carbon_ruby_sdk/models/organization_user_data_source_api.rb +380 -0
  72. data/lib/carbon_ruby_sdk/models/organization_user_data_source_filters.rb +238 -0
  73. data/lib/carbon_ruby_sdk/models/organization_user_data_source_order_by_columns.rb +36 -0
  74. data/lib/carbon_ruby_sdk/models/organization_user_data_source_query_input.rb +246 -0
  75. data/lib/carbon_ruby_sdk/models/organization_user_data_source_response.rb +236 -0
  76. data/lib/carbon_ruby_sdk/models/organization_user_file_tag_create.rb +236 -0
  77. data/lib/carbon_ruby_sdk/models/organization_user_file_tags_remove.rb +236 -0
  78. data/lib/carbon_ruby_sdk/models/organization_user_files_to_sync_filters.rb +330 -0
  79. data/lib/carbon_ruby_sdk/models/organization_user_files_to_sync_order_by_types.rb +39 -0
  80. data/lib/carbon_ruby_sdk/models/organization_user_files_to_sync_query_input.rb +276 -0
  81. data/lib/carbon_ruby_sdk/models/outlook_sync_input.rb +313 -0
  82. data/lib/carbon_ruby_sdk/models/pagination.rb +228 -0
  83. data/lib/carbon_ruby_sdk/models/presigned_url_response.rb +220 -0
  84. data/lib/carbon_ruby_sdk/models/rank_property.rb +226 -0
  85. data/lib/carbon_ruby_sdk/models/raw_text_input.rb +295 -0
  86. data/lib/carbon_ruby_sdk/models/raw_transcript_property_inner_value.rb +226 -0
  87. data/lib/carbon_ruby_sdk/models/resync_file_query_input.rb +240 -0
  88. data/lib/carbon_ruby_sdk/models/revoke_access_token_input.rb +220 -0
  89. data/lib/carbon_ruby_sdk/models/rss_feed_input.rb +301 -0
  90. data/lib/carbon_ruby_sdk/models/s3_auth_request.rb +234 -0
  91. data/lib/carbon_ruby_sdk/models/s3_file_sync_input.rb +313 -0
  92. data/lib/carbon_ruby_sdk/models/s3_get_file_input.rb +226 -0
  93. data/lib/carbon_ruby_sdk/models/single_chunks_and_embeddings_upload_input.rb +256 -0
  94. data/lib/carbon_ruby_sdk/models/sitemap_scrape_request.rb +361 -0
  95. data/lib/carbon_ruby_sdk/models/source_property.rb +226 -0
  96. data/lib/carbon_ruby_sdk/models/sync_directory_request.rb +220 -0
  97. data/lib/carbon_ruby_sdk/models/sync_files_request.rb +328 -0
  98. data/lib/carbon_ruby_sdk/models/tags.rb +232 -0
  99. data/lib/carbon_ruby_sdk/models/tags1.rb +230 -0
  100. data/lib/carbon_ruby_sdk/models/text_embedding_generators.rb +42 -0
  101. data/lib/carbon_ruby_sdk/models/token_response.rb +234 -0
  102. data/lib/carbon_ruby_sdk/models/upload_file_from_url_input.rb +326 -0
  103. data/lib/carbon_ruby_sdk/models/user_file.rb +524 -0
  104. data/lib/carbon_ruby_sdk/models/user_files_v2.rb +236 -0
  105. data/lib/carbon_ruby_sdk/models/user_request_content.rb +220 -0
  106. data/lib/carbon_ruby_sdk/models/user_response.rb +354 -0
  107. data/lib/carbon_ruby_sdk/models/validation_error.rb +250 -0
  108. data/lib/carbon_ruby_sdk/models/webhook.rb +290 -0
  109. data/lib/carbon_ruby_sdk/models/webhook_filters.rb +218 -0
  110. data/lib/carbon_ruby_sdk/models/webhook_no_key.rb +276 -0
  111. data/lib/carbon_ruby_sdk/models/webhook_order_by_columns.rb +36 -0
  112. data/lib/carbon_ruby_sdk/models/webhook_query_input.rb +246 -0
  113. data/lib/carbon_ruby_sdk/models/webhook_query_response.rb +236 -0
  114. data/lib/carbon_ruby_sdk/models/webscrape_request.rb +375 -0
  115. data/lib/carbon_ruby_sdk/models/white_labeling_response.rb +234 -0
  116. data/lib/carbon_ruby_sdk/models/youtube_transcript_response.rb +252 -0
  117. data/lib/carbon_ruby_sdk/version.rb +11 -0
  118. data/lib/carbon_ruby_sdk.rb +207 -0
  119. data/spec/api/auth_api_spec.rb +50 -0
  120. data/spec/api/data_sources_api_spec.rb +51 -0
  121. data/spec/api/embeddings_api_spec.rb +63 -0
  122. data/spec/api/files_api_spec.rb +178 -0
  123. data/spec/api/health_api_spec.rb +39 -0
  124. data/spec/api/integrations_api_spec.rb +226 -0
  125. data/spec/api/organizations_api_spec.rb +39 -0
  126. data/spec/api/users_api_spec.rb +51 -0
  127. data/spec/api/utilities_api_spec.rb +102 -0
  128. data/spec/api/webhooks_api_spec.rb +62 -0
  129. data/spec/api_client_spec.rb +191 -0
  130. data/spec/configuration_spec.rb +38 -0
  131. data/spec/getting_started_spec.rb +196 -0
  132. data/spec/models/add_webhook_props_spec.rb +28 -0
  133. data/spec/models/body_create_upload_file_uploadfile_post_spec.rb +28 -0
  134. data/spec/models/chunk_properties_nullable_spec.rb +40 -0
  135. data/spec/models/chunk_properties_spec.rb +40 -0
  136. data/spec/models/chunks_and_embeddings_spec.rb +40 -0
  137. data/spec/models/chunks_and_embeddings_upload_input_spec.rb +40 -0
  138. data/spec/models/data_source_last_sync_actions_spec.rb +22 -0
  139. data/spec/models/data_source_sync_statuses_spec.rb +22 -0
  140. data/spec/models/data_source_type_nullable_spec.rb +22 -0
  141. data/spec/models/data_source_type_spec.rb +22 -0
  142. data/spec/models/delete_files_query_input_spec.rb +46 -0
  143. data/spec/models/directory_item_spec.rb +46 -0
  144. data/spec/models/document_response_list_spec.rb +28 -0
  145. data/spec/models/document_response_spec.rb +88 -0
  146. data/spec/models/embedding_and_chunk_spec.rb +46 -0
  147. data/spec/models/embedding_generators_nullable_spec.rb +22 -0
  148. data/spec/models/embedding_generators_spec.rb +22 -0
  149. data/spec/models/embedding_properties_spec.rb +34 -0
  150. data/spec/models/embeddings_and_chunks_filters_spec.rb +34 -0
  151. data/spec/models/embeddings_and_chunks_order_by_columns_spec.rb +22 -0
  152. data/spec/models/embeddings_and_chunks_query_input_spec.rb +52 -0
  153. data/spec/models/embeddings_and_chunks_response_spec.rb +34 -0
  154. data/spec/models/external_file_sync_statuses_spec.rb +22 -0
  155. data/spec/models/external_source_item_spec.rb +124 -0
  156. data/spec/models/fetch_urls_response_spec.rb +34 -0
  157. data/spec/models/file_content_types_nullable_spec.rb +22 -0
  158. data/spec/models/file_content_types_spec.rb +22 -0
  159. data/spec/models/file_formats_nullable_spec.rb +22 -0
  160. data/spec/models/file_formats_spec.rb +22 -0
  161. data/spec/models/file_statistics_nullable_spec.rb +52 -0
  162. data/spec/models/file_statistics_spec.rb +52 -0
  163. data/spec/models/fresh_desk_connect_request_spec.rb +76 -0
  164. data/spec/models/generic_success_response_spec.rb +28 -0
  165. data/spec/models/get_embedding_documents_body_spec.rb +106 -0
  166. data/spec/models/gitbook_connect_request_spec.rb +34 -0
  167. data/spec/models/gitbook_sync_request_spec.rb +76 -0
  168. data/spec/models/gmail_sync_input_spec.rb +70 -0
  169. data/spec/models/http_validation_error_spec.rb +28 -0
  170. data/spec/models/hybrid_search_tuning_params_nullable_spec.rb +34 -0
  171. data/spec/models/hybrid_search_tuning_params_spec.rb +34 -0
  172. data/spec/models/list_data_source_items_request_spec.rb +40 -0
  173. data/spec/models/list_data_source_items_response_spec.rb +34 -0
  174. data/spec/models/list_request_spec.rb +34 -0
  175. data/spec/models/list_response_spec.rb +28 -0
  176. data/spec/models/location_property_inner_spec.rb +22 -0
  177. data/spec/models/modify_user_configuration_input_spec.rb +34 -0
  178. data/spec/models/o_auth_url_request_spec.rb +106 -0
  179. data/spec/models/order_dir_spec.rb +22 -0
  180. data/spec/models/organization_response_spec.rb +94 -0
  181. data/spec/models/organization_user_data_source_api_spec.rb +100 -0
  182. data/spec/models/organization_user_data_source_filters_spec.rb +40 -0
  183. data/spec/models/organization_user_data_source_order_by_columns_spec.rb +22 -0
  184. data/spec/models/organization_user_data_source_query_input_spec.rb +46 -0
  185. data/spec/models/organization_user_data_source_response_spec.rb +34 -0
  186. data/spec/models/organization_user_file_tag_create_spec.rb +34 -0
  187. data/spec/models/organization_user_file_tags_remove_spec.rb +34 -0
  188. data/spec/models/organization_user_files_to_sync_filters_spec.rb +88 -0
  189. data/spec/models/organization_user_files_to_sync_order_by_types_spec.rb +22 -0
  190. data/spec/models/organization_user_files_to_sync_query_input_spec.rb +64 -0
  191. data/spec/models/outlook_sync_input_spec.rb +76 -0
  192. data/spec/models/pagination_spec.rb +34 -0
  193. data/spec/models/presigned_url_response_spec.rb +28 -0
  194. data/spec/models/rank_property_spec.rb +22 -0
  195. data/spec/models/raw_text_input_spec.rb +70 -0
  196. data/spec/models/raw_transcript_property_inner_value_spec.rb +22 -0
  197. data/spec/models/resync_file_query_input_spec.rb +40 -0
  198. data/spec/models/revoke_access_token_input_spec.rb +28 -0
  199. data/spec/models/rss_feed_input_spec.rb +70 -0
  200. data/spec/models/s3_auth_request_spec.rb +34 -0
  201. data/spec/models/s3_file_sync_input_spec.rb +76 -0
  202. data/spec/models/s3_get_file_input_spec.rb +34 -0
  203. data/spec/models/single_chunks_and_embeddings_upload_input_spec.rb +46 -0
  204. data/spec/models/sitemap_scrape_request_spec.rb +100 -0
  205. data/spec/models/source_property_spec.rb +22 -0
  206. data/spec/models/sync_directory_request_spec.rb +28 -0
  207. data/spec/models/sync_files_request_spec.rb +82 -0
  208. data/spec/models/tags1_spec.rb +22 -0
  209. data/spec/models/tags_spec.rb +22 -0
  210. data/spec/models/text_embedding_generators_spec.rb +22 -0
  211. data/spec/models/token_response_spec.rb +34 -0
  212. data/spec/models/upload_file_from_url_input_spec.rb +88 -0
  213. data/spec/models/user_file_spec.rb +190 -0
  214. data/spec/models/user_files_v2_spec.rb +34 -0
  215. data/spec/models/user_request_content_spec.rb +28 -0
  216. data/spec/models/user_response_spec.rb +88 -0
  217. data/spec/models/validation_error_spec.rb +40 -0
  218. data/spec/models/webhook_filters_spec.rb +28 -0
  219. data/spec/models/webhook_no_key_spec.rb +52 -0
  220. data/spec/models/webhook_order_by_columns_spec.rb +22 -0
  221. data/spec/models/webhook_query_input_spec.rb +46 -0
  222. data/spec/models/webhook_query_response_spec.rb +34 -0
  223. data/spec/models/webhook_spec.rb +58 -0
  224. data/spec/models/webscrape_request_spec.rb +106 -0
  225. data/spec/models/white_labeling_response_spec.rb +34 -0
  226. data/spec/models/youtube_transcript_response_spec.rb +46 -0
  227. data/spec/spec_helper.rb +107 -0
  228. metadata +440 -0
@@ -0,0 +1,524 @@
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 UserFile
14
+ attr_accessor :tags
15
+
16
+ attr_accessor :id
17
+
18
+ attr_accessor :source
19
+
20
+ attr_accessor :organization_id
21
+
22
+ attr_accessor :organization_supplied_user_id
23
+
24
+ attr_accessor :organization_user_data_source_id
25
+
26
+ attr_accessor :external_file_id
27
+
28
+ attr_accessor :external_url
29
+
30
+ attr_accessor :sync_status
31
+
32
+ attr_accessor :sync_error_message
33
+
34
+ attr_accessor :last_sync
35
+
36
+ attr_accessor :file_statistics
37
+
38
+ attr_accessor :file_metadata
39
+
40
+ attr_accessor :embedding_properties
41
+
42
+ attr_accessor :chunk_size
43
+
44
+ attr_accessor :chunk_overlap
45
+
46
+ attr_accessor :chunk_properties
47
+
48
+ attr_accessor :name
49
+
50
+ attr_accessor :parent_id
51
+
52
+ attr_accessor :enable_auto_sync
53
+
54
+ attr_accessor :presigned_url
55
+
56
+ attr_accessor :parsed_text_url
57
+
58
+ attr_accessor :additional_presigned_urls
59
+
60
+ attr_accessor :skip_embedding_generation
61
+
62
+ attr_accessor :source_created_at
63
+
64
+ attr_accessor :generate_sparse_vectors
65
+
66
+ attr_accessor :created_at
67
+
68
+ attr_accessor :updated_at
69
+
70
+ # Attribute mapping from ruby-style variable name to JSON key.
71
+ def self.attribute_map
72
+ {
73
+ :'tags' => :'tags',
74
+ :'id' => :'id',
75
+ :'source' => :'source',
76
+ :'organization_id' => :'organization_id',
77
+ :'organization_supplied_user_id' => :'organization_supplied_user_id',
78
+ :'organization_user_data_source_id' => :'organization_user_data_source_id',
79
+ :'external_file_id' => :'external_file_id',
80
+ :'external_url' => :'external_url',
81
+ :'sync_status' => :'sync_status',
82
+ :'sync_error_message' => :'sync_error_message',
83
+ :'last_sync' => :'last_sync',
84
+ :'file_statistics' => :'file_statistics',
85
+ :'file_metadata' => :'file_metadata',
86
+ :'embedding_properties' => :'embedding_properties',
87
+ :'chunk_size' => :'chunk_size',
88
+ :'chunk_overlap' => :'chunk_overlap',
89
+ :'chunk_properties' => :'chunk_properties',
90
+ :'name' => :'name',
91
+ :'parent_id' => :'parent_id',
92
+ :'enable_auto_sync' => :'enable_auto_sync',
93
+ :'presigned_url' => :'presigned_url',
94
+ :'parsed_text_url' => :'parsed_text_url',
95
+ :'additional_presigned_urls' => :'additional_presigned_urls',
96
+ :'skip_embedding_generation' => :'skip_embedding_generation',
97
+ :'source_created_at' => :'source_created_at',
98
+ :'generate_sparse_vectors' => :'generate_sparse_vectors',
99
+ :'created_at' => :'created_at',
100
+ :'updated_at' => :'updated_at'
101
+ }
102
+ end
103
+
104
+ # Returns all the JSON keys this model knows about
105
+ def self.acceptable_attributes
106
+ attribute_map.values
107
+ end
108
+
109
+ # Attribute type mapping.
110
+ def self.openapi_types
111
+ {
112
+ :'tags' => :'Object',
113
+ :'id' => :'Integer',
114
+ :'source' => :'DataSourceType',
115
+ :'organization_id' => :'Integer',
116
+ :'organization_supplied_user_id' => :'String',
117
+ :'organization_user_data_source_id' => :'Integer',
118
+ :'external_file_id' => :'String',
119
+ :'external_url' => :'String',
120
+ :'sync_status' => :'ExternalFileSyncStatuses',
121
+ :'sync_error_message' => :'String',
122
+ :'last_sync' => :'Time',
123
+ :'file_statistics' => :'FileStatisticsNullable',
124
+ :'file_metadata' => :'Object',
125
+ :'embedding_properties' => :'Hash<String, EmbeddingProperties>',
126
+ :'chunk_size' => :'Integer',
127
+ :'chunk_overlap' => :'Integer',
128
+ :'chunk_properties' => :'ChunkPropertiesNullable',
129
+ :'name' => :'String',
130
+ :'parent_id' => :'Integer',
131
+ :'enable_auto_sync' => :'Boolean',
132
+ :'presigned_url' => :'String',
133
+ :'parsed_text_url' => :'String',
134
+ :'additional_presigned_urls' => :'Object',
135
+ :'skip_embedding_generation' => :'Boolean',
136
+ :'source_created_at' => :'Time',
137
+ :'generate_sparse_vectors' => :'Boolean',
138
+ :'created_at' => :'Time',
139
+ :'updated_at' => :'Time'
140
+ }
141
+ end
142
+
143
+ # List of attributes with nullable: true
144
+ def self.openapi_nullable
145
+ Set.new([
146
+ :'tags',
147
+ :'organization_user_data_source_id',
148
+ :'external_url',
149
+ :'sync_error_message',
150
+ :'last_sync',
151
+ :'file_statistics',
152
+ :'file_metadata',
153
+ :'embedding_properties',
154
+ :'chunk_size',
155
+ :'chunk_overlap',
156
+ :'chunk_properties',
157
+ :'name',
158
+ :'parent_id',
159
+ :'enable_auto_sync',
160
+ :'presigned_url',
161
+ :'parsed_text_url',
162
+ :'additional_presigned_urls',
163
+ :'source_created_at',
164
+ :'generate_sparse_vectors',
165
+ ])
166
+ end
167
+
168
+ # Initializes the object
169
+ # @param [Hash] attributes Model attributes in the form of hash
170
+ def initialize(attributes = {})
171
+ if (!attributes.is_a?(Hash))
172
+ fail ArgumentError, "The input argument (attributes) must be a hash in `Carbon::UserFile` initialize method"
173
+ end
174
+
175
+ # check to see if the attribute exists and convert string to symbol for hash key
176
+ attributes = attributes.each_with_object({}) { |(k, v), h|
177
+ if (!self.class.attribute_map.key?(k.to_sym))
178
+ fail ArgumentError, "`#{k}` is not a valid attribute in `Carbon::UserFile`. Please check the name to make sure it's valid. List of attributes: " + self.class.attribute_map.keys.inspect
179
+ end
180
+ h[k.to_sym] = v
181
+ }
182
+
183
+ if attributes.key?(:'tags')
184
+ self.tags = attributes[:'tags']
185
+ end
186
+
187
+ if attributes.key?(:'id')
188
+ self.id = attributes[:'id']
189
+ end
190
+
191
+ if attributes.key?(:'source')
192
+ self.source = attributes[:'source']
193
+ end
194
+
195
+ if attributes.key?(:'organization_id')
196
+ self.organization_id = attributes[:'organization_id']
197
+ end
198
+
199
+ if attributes.key?(:'organization_supplied_user_id')
200
+ self.organization_supplied_user_id = attributes[:'organization_supplied_user_id']
201
+ end
202
+
203
+ if attributes.key?(:'organization_user_data_source_id')
204
+ self.organization_user_data_source_id = attributes[:'organization_user_data_source_id']
205
+ end
206
+
207
+ if attributes.key?(:'external_file_id')
208
+ self.external_file_id = attributes[:'external_file_id']
209
+ end
210
+
211
+ if attributes.key?(:'external_url')
212
+ self.external_url = attributes[:'external_url']
213
+ end
214
+
215
+ if attributes.key?(:'sync_status')
216
+ self.sync_status = attributes[:'sync_status']
217
+ end
218
+
219
+ if attributes.key?(:'sync_error_message')
220
+ self.sync_error_message = attributes[:'sync_error_message']
221
+ end
222
+
223
+ if attributes.key?(:'last_sync')
224
+ self.last_sync = attributes[:'last_sync']
225
+ end
226
+
227
+ if attributes.key?(:'file_statistics')
228
+ self.file_statistics = attributes[:'file_statistics']
229
+ end
230
+
231
+ if attributes.key?(:'file_metadata')
232
+ self.file_metadata = attributes[:'file_metadata']
233
+ end
234
+
235
+ if attributes.key?(:'embedding_properties')
236
+ if (value = attributes[:'embedding_properties']).is_a?(Hash)
237
+ self.embedding_properties = value
238
+ end
239
+ end
240
+
241
+ if attributes.key?(:'chunk_size')
242
+ self.chunk_size = attributes[:'chunk_size']
243
+ end
244
+
245
+ if attributes.key?(:'chunk_overlap')
246
+ self.chunk_overlap = attributes[:'chunk_overlap']
247
+ end
248
+
249
+ if attributes.key?(:'chunk_properties')
250
+ self.chunk_properties = attributes[:'chunk_properties']
251
+ end
252
+
253
+ if attributes.key?(:'name')
254
+ self.name = attributes[:'name']
255
+ end
256
+
257
+ if attributes.key?(:'parent_id')
258
+ self.parent_id = attributes[:'parent_id']
259
+ end
260
+
261
+ if attributes.key?(:'enable_auto_sync')
262
+ self.enable_auto_sync = attributes[:'enable_auto_sync']
263
+ end
264
+
265
+ if attributes.key?(:'presigned_url')
266
+ self.presigned_url = attributes[:'presigned_url']
267
+ end
268
+
269
+ if attributes.key?(:'parsed_text_url')
270
+ self.parsed_text_url = attributes[:'parsed_text_url']
271
+ end
272
+
273
+ if attributes.key?(:'additional_presigned_urls')
274
+ self.additional_presigned_urls = attributes[:'additional_presigned_urls']
275
+ end
276
+
277
+ if attributes.key?(:'skip_embedding_generation')
278
+ self.skip_embedding_generation = attributes[:'skip_embedding_generation']
279
+ end
280
+
281
+ if attributes.key?(:'source_created_at')
282
+ self.source_created_at = attributes[:'source_created_at']
283
+ end
284
+
285
+ if attributes.key?(:'generate_sparse_vectors')
286
+ self.generate_sparse_vectors = attributes[:'generate_sparse_vectors']
287
+ end
288
+
289
+ if attributes.key?(:'created_at')
290
+ self.created_at = attributes[:'created_at']
291
+ end
292
+
293
+ if attributes.key?(:'updated_at')
294
+ self.updated_at = attributes[:'updated_at']
295
+ end
296
+ end
297
+
298
+ # Show invalid properties with the reasons. Usually used together with valid?
299
+ # @return Array for valid properties with the reasons
300
+ def list_invalid_properties
301
+ invalid_properties = Array.new
302
+ if @id.nil?
303
+ invalid_properties.push('invalid value for "id", id cannot be nil.')
304
+ end
305
+
306
+ if @source.nil?
307
+ invalid_properties.push('invalid value for "source", source cannot be nil.')
308
+ end
309
+
310
+ if @organization_id.nil?
311
+ invalid_properties.push('invalid value for "organization_id", organization_id cannot be nil.')
312
+ end
313
+
314
+ if @organization_supplied_user_id.nil?
315
+ invalid_properties.push('invalid value for "organization_supplied_user_id", organization_supplied_user_id cannot be nil.')
316
+ end
317
+
318
+ if @external_file_id.nil?
319
+ invalid_properties.push('invalid value for "external_file_id", external_file_id cannot be nil.')
320
+ end
321
+
322
+ if @sync_status.nil?
323
+ invalid_properties.push('invalid value for "sync_status", sync_status cannot be nil.')
324
+ end
325
+
326
+ if @skip_embedding_generation.nil?
327
+ invalid_properties.push('invalid value for "skip_embedding_generation", skip_embedding_generation cannot be nil.')
328
+ end
329
+
330
+ if @created_at.nil?
331
+ invalid_properties.push('invalid value for "created_at", created_at cannot be nil.')
332
+ end
333
+
334
+ if @updated_at.nil?
335
+ invalid_properties.push('invalid value for "updated_at", updated_at cannot be nil.')
336
+ end
337
+
338
+ invalid_properties
339
+ end
340
+
341
+ # Check to see if the all the properties in the model are valid
342
+ # @return true if the model is valid
343
+ def valid?
344
+ return false if @id.nil?
345
+ return false if @source.nil?
346
+ return false if @organization_id.nil?
347
+ return false if @organization_supplied_user_id.nil?
348
+ return false if @external_file_id.nil?
349
+ return false if @sync_status.nil?
350
+ return false if @skip_embedding_generation.nil?
351
+ return false if @created_at.nil?
352
+ return false if @updated_at.nil?
353
+ true
354
+ end
355
+
356
+ # Checks equality by comparing each attribute.
357
+ # @param [Object] Object to be compared
358
+ def ==(o)
359
+ return true if self.equal?(o)
360
+ self.class == o.class &&
361
+ tags == o.tags &&
362
+ id == o.id &&
363
+ source == o.source &&
364
+ organization_id == o.organization_id &&
365
+ organization_supplied_user_id == o.organization_supplied_user_id &&
366
+ organization_user_data_source_id == o.organization_user_data_source_id &&
367
+ external_file_id == o.external_file_id &&
368
+ external_url == o.external_url &&
369
+ sync_status == o.sync_status &&
370
+ sync_error_message == o.sync_error_message &&
371
+ last_sync == o.last_sync &&
372
+ file_statistics == o.file_statistics &&
373
+ file_metadata == o.file_metadata &&
374
+ embedding_properties == o.embedding_properties &&
375
+ chunk_size == o.chunk_size &&
376
+ chunk_overlap == o.chunk_overlap &&
377
+ chunk_properties == o.chunk_properties &&
378
+ name == o.name &&
379
+ parent_id == o.parent_id &&
380
+ enable_auto_sync == o.enable_auto_sync &&
381
+ presigned_url == o.presigned_url &&
382
+ parsed_text_url == o.parsed_text_url &&
383
+ additional_presigned_urls == o.additional_presigned_urls &&
384
+ skip_embedding_generation == o.skip_embedding_generation &&
385
+ source_created_at == o.source_created_at &&
386
+ generate_sparse_vectors == o.generate_sparse_vectors &&
387
+ created_at == o.created_at &&
388
+ updated_at == o.updated_at
389
+ end
390
+
391
+ # @see the `==` method
392
+ # @param [Object] Object to be compared
393
+ def eql?(o)
394
+ self == o
395
+ end
396
+
397
+ # Calculates hash code according to all attributes.
398
+ # @return [Integer] Hash code
399
+ def hash
400
+ [tags, id, source, organization_id, organization_supplied_user_id, organization_user_data_source_id, external_file_id, external_url, sync_status, sync_error_message, last_sync, file_statistics, file_metadata, embedding_properties, chunk_size, chunk_overlap, chunk_properties, name, parent_id, enable_auto_sync, presigned_url, parsed_text_url, additional_presigned_urls, skip_embedding_generation, source_created_at, generate_sparse_vectors, created_at, updated_at].hash
401
+ end
402
+
403
+ # Builds the object from hash
404
+ # @param [Hash] attributes Model attributes in the form of hash
405
+ # @return [Object] Returns the model itself
406
+ def self.build_from_hash(attributes)
407
+ new.build_from_hash(attributes)
408
+ end
409
+
410
+ # Builds the object from hash
411
+ # @param [Hash] attributes Model attributes in the form of hash
412
+ # @return [Object] Returns the model itself
413
+ def build_from_hash(attributes)
414
+ return nil unless attributes.is_a?(Hash)
415
+ attributes = attributes.transform_keys(&:to_sym)
416
+ self.class.openapi_types.each_pair do |key, type|
417
+ if attributes[self.class.attribute_map[key]].nil? && self.class.openapi_nullable.include?(key)
418
+ self.send("#{key}=", nil)
419
+ elsif type =~ /\AArray<(.*)>/i
420
+ # check to ensure the input is an array given that the attribute
421
+ # is documented as an array but the input is not
422
+ if attributes[self.class.attribute_map[key]].is_a?(Array)
423
+ self.send("#{key}=", attributes[self.class.attribute_map[key]].map { |v| _deserialize($1, v) })
424
+ end
425
+ elsif !attributes[self.class.attribute_map[key]].nil?
426
+ self.send("#{key}=", _deserialize(type, attributes[self.class.attribute_map[key]]))
427
+ end
428
+ end
429
+
430
+ self
431
+ end
432
+
433
+ # Deserializes the data based on type
434
+ # @param string type Data type
435
+ # @param string value Value to be deserialized
436
+ # @return [Object] Deserialized data
437
+ def _deserialize(type, value)
438
+ case type.to_sym
439
+ when :Time
440
+ Time.parse(value)
441
+ when :Date
442
+ Date.parse(value)
443
+ when :String
444
+ value.to_s
445
+ when :Integer
446
+ value.to_i
447
+ when :Float
448
+ value.to_f
449
+ when :Boolean
450
+ if value.to_s =~ /\A(true|t|yes|y|1)\z/i
451
+ true
452
+ else
453
+ false
454
+ end
455
+ when :Object
456
+ # generic object (usually a Hash), return directly
457
+ value
458
+ when /\AArray<(?<inner_type>.+)>\z/
459
+ inner_type = Regexp.last_match[:inner_type]
460
+ value.map { |v| _deserialize(inner_type, v) }
461
+ when /\AHash<(?<k_type>.+?), (?<v_type>.+)>\z/
462
+ k_type = Regexp.last_match[:k_type]
463
+ v_type = Regexp.last_match[:v_type]
464
+ {}.tap do |hash|
465
+ value.each do |k, v|
466
+ hash[_deserialize(k_type, k)] = _deserialize(v_type, v)
467
+ end
468
+ end
469
+ else # model
470
+ # models (e.g. Pet) or oneOf
471
+ klass = Carbon.const_get(type)
472
+ klass.respond_to?(:openapi_one_of) ? klass.build(value) : klass.build_from_hash(value)
473
+ end
474
+ end
475
+
476
+ # Returns the string representation of the object
477
+ # @return [String] String presentation of the object
478
+ def to_s
479
+ to_hash.to_s
480
+ end
481
+
482
+ # to_body is an alias to to_hash (backward compatibility)
483
+ # @return [Hash] Returns the object in the form of hash
484
+ def to_body
485
+ to_hash
486
+ end
487
+
488
+ # Returns the object in the form of hash
489
+ # @return [Hash] Returns the object in the form of hash
490
+ def to_hash
491
+ hash = {}
492
+ self.class.attribute_map.each_pair do |attr, param|
493
+ value = self.send(attr)
494
+ if value.nil?
495
+ is_nullable = self.class.openapi_nullable.include?(attr)
496
+ next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}"))
497
+ end
498
+
499
+ hash[param] = _to_hash(value)
500
+ end
501
+ hash
502
+ end
503
+
504
+ # Outputs non-array value in the form of hash
505
+ # For object, use to_hash. Otherwise, just return the value
506
+ # @param [Object] value Any valid value
507
+ # @return [Hash] Returns the value in the form of hash
508
+ def _to_hash(value)
509
+ if value.is_a?(Array)
510
+ value.compact.map { |v| _to_hash(v) }
511
+ elsif value.is_a?(Hash)
512
+ {}.tap do |hash|
513
+ value.each { |k, v| hash[k] = _to_hash(v) }
514
+ end
515
+ elsif value.respond_to? :to_hash
516
+ value.to_hash
517
+ else
518
+ value
519
+ end
520
+ end
521
+
522
+ end
523
+
524
+ end