carbon_ruby_sdk 0.2.9 → 0.2.11

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.
@@ -0,0 +1,257 @@
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 ListUsersRequest
14
+ attr_accessor :pagination
15
+
16
+ attr_accessor :filters
17
+
18
+ attr_accessor :order_by
19
+
20
+ attr_accessor :order_dir
21
+
22
+ attr_accessor :include_count
23
+
24
+ # Attribute mapping from ruby-style variable name to JSON key.
25
+ def self.attribute_map
26
+ {
27
+ :'pagination' => :'pagination',
28
+ :'filters' => :'filters',
29
+ :'order_by' => :'order_by',
30
+ :'order_dir' => :'order_dir',
31
+ :'include_count' => :'include_count'
32
+ }
33
+ end
34
+
35
+ # Returns all the JSON keys this model knows about
36
+ def self.acceptable_attributes
37
+ attribute_map.values
38
+ end
39
+
40
+ # Attribute type mapping.
41
+ def self.openapi_types
42
+ {
43
+ :'pagination' => :'Pagination',
44
+ :'filters' => :'ListUsersFilters',
45
+ :'order_by' => :'ListUsersOrderByTypes',
46
+ :'order_dir' => :'OrderDirV2',
47
+ :'include_count' => :'Boolean'
48
+ }
49
+ end
50
+
51
+ # List of attributes with nullable: true
52
+ def self.openapi_nullable
53
+ Set.new([
54
+ ])
55
+ end
56
+
57
+ # Initializes the object
58
+ # @param [Hash] attributes Model attributes in the form of hash
59
+ def initialize(attributes = {})
60
+ if (!attributes.is_a?(Hash))
61
+ fail ArgumentError, "The input argument (attributes) must be a hash in `Carbon::ListUsersRequest` initialize method"
62
+ end
63
+
64
+ # check to see if the attribute exists and convert string to symbol for hash key
65
+ attributes = attributes.each_with_object({}) { |(k, v), h|
66
+ if (!self.class.attribute_map.key?(k.to_sym))
67
+ fail ArgumentError, "`#{k}` is not a valid attribute in `Carbon::ListUsersRequest`. Please check the name to make sure it's valid. List of attributes: " + self.class.attribute_map.keys.inspect
68
+ end
69
+ h[k.to_sym] = v
70
+ }
71
+
72
+ if attributes.key?(:'pagination')
73
+ self.pagination = attributes[:'pagination']
74
+ end
75
+
76
+ if attributes.key?(:'filters')
77
+ self.filters = attributes[:'filters']
78
+ end
79
+
80
+ if attributes.key?(:'order_by')
81
+ self.order_by = attributes[:'order_by']
82
+ else
83
+ self.order_by = 'created_at'
84
+ end
85
+
86
+ if attributes.key?(:'order_dir')
87
+ self.order_dir = attributes[:'order_dir']
88
+ else
89
+ self.order_dir = 'desc'
90
+ end
91
+
92
+ if attributes.key?(:'include_count')
93
+ self.include_count = attributes[:'include_count']
94
+ else
95
+ self.include_count = false
96
+ end
97
+ end
98
+
99
+ # Show invalid properties with the reasons. Usually used together with valid?
100
+ # @return Array for valid properties with the reasons
101
+ def list_invalid_properties
102
+ invalid_properties = Array.new
103
+ invalid_properties
104
+ end
105
+
106
+ # Check to see if the all the properties in the model are valid
107
+ # @return true if the model is valid
108
+ def valid?
109
+ true
110
+ end
111
+
112
+ # Checks equality by comparing each attribute.
113
+ # @param [Object] Object to be compared
114
+ def ==(o)
115
+ return true if self.equal?(o)
116
+ self.class == o.class &&
117
+ pagination == o.pagination &&
118
+ filters == o.filters &&
119
+ order_by == o.order_by &&
120
+ order_dir == o.order_dir &&
121
+ include_count == o.include_count
122
+ end
123
+
124
+ # @see the `==` method
125
+ # @param [Object] Object to be compared
126
+ def eql?(o)
127
+ self == o
128
+ end
129
+
130
+ # Calculates hash code according to all attributes.
131
+ # @return [Integer] Hash code
132
+ def hash
133
+ [pagination, filters, order_by, order_dir, include_count].hash
134
+ end
135
+
136
+ # Builds the object from hash
137
+ # @param [Hash] attributes Model attributes in the form of hash
138
+ # @return [Object] Returns the model itself
139
+ def self.build_from_hash(attributes)
140
+ new.build_from_hash(attributes)
141
+ end
142
+
143
+ # Builds the object from hash
144
+ # @param [Hash] attributes Model attributes in the form of hash
145
+ # @return [Object] Returns the model itself
146
+ def build_from_hash(attributes)
147
+ return nil unless attributes.is_a?(Hash)
148
+ attributes = attributes.transform_keys(&:to_sym)
149
+ self.class.openapi_types.each_pair do |key, type|
150
+ if attributes[self.class.attribute_map[key]].nil? && self.class.openapi_nullable.include?(key)
151
+ self.send("#{key}=", nil)
152
+ elsif type =~ /\AArray<(.*)>/i
153
+ # check to ensure the input is an array given that the attribute
154
+ # is documented as an array but the input is not
155
+ if attributes[self.class.attribute_map[key]].is_a?(Array)
156
+ self.send("#{key}=", attributes[self.class.attribute_map[key]].map { |v| _deserialize($1, v) })
157
+ end
158
+ elsif !attributes[self.class.attribute_map[key]].nil?
159
+ self.send("#{key}=", _deserialize(type, attributes[self.class.attribute_map[key]]))
160
+ end
161
+ end
162
+
163
+ self
164
+ end
165
+
166
+ # Deserializes the data based on type
167
+ # @param string type Data type
168
+ # @param string value Value to be deserialized
169
+ # @return [Object] Deserialized data
170
+ def _deserialize(type, value)
171
+ case type.to_sym
172
+ when :Time
173
+ Time.parse(value)
174
+ when :Date
175
+ Date.parse(value)
176
+ when :String
177
+ value.to_s
178
+ when :Integer
179
+ value.to_i
180
+ when :Float
181
+ value.to_f
182
+ when :Boolean
183
+ if value.to_s =~ /\A(true|t|yes|y|1)\z/i
184
+ true
185
+ else
186
+ false
187
+ end
188
+ when :Object
189
+ # generic object (usually a Hash), return directly
190
+ value
191
+ when /\AArray<(?<inner_type>.+)>\z/
192
+ inner_type = Regexp.last_match[:inner_type]
193
+ value.map { |v| _deserialize(inner_type, v) }
194
+ when /\AHash<(?<k_type>.+?), (?<v_type>.+)>\z/
195
+ k_type = Regexp.last_match[:k_type]
196
+ v_type = Regexp.last_match[:v_type]
197
+ {}.tap do |hash|
198
+ value.each do |k, v|
199
+ hash[_deserialize(k_type, k)] = _deserialize(v_type, v)
200
+ end
201
+ end
202
+ else # model
203
+ # models (e.g. Pet) or oneOf
204
+ klass = Carbon.const_get(type)
205
+ klass.respond_to?(:openapi_one_of) ? klass.build(value) : klass.build_from_hash(value)
206
+ end
207
+ end
208
+
209
+ # Returns the string representation of the object
210
+ # @return [String] String presentation of the object
211
+ def to_s
212
+ to_hash.to_s
213
+ end
214
+
215
+ # to_body is an alias to to_hash (backward compatibility)
216
+ # @return [Hash] Returns the object in the form of hash
217
+ def to_body
218
+ to_hash
219
+ end
220
+
221
+ # Returns the object in the form of hash
222
+ # @return [Hash] Returns the object in the form of hash
223
+ def to_hash
224
+ hash = {}
225
+ self.class.attribute_map.each_pair do |attr, param|
226
+ value = self.send(attr)
227
+ if value.nil?
228
+ is_nullable = self.class.openapi_nullable.include?(attr)
229
+ next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}"))
230
+ end
231
+
232
+ hash[param] = _to_hash(value)
233
+ end
234
+ hash
235
+ end
236
+
237
+ # Outputs non-array value in the form of hash
238
+ # For object, use to_hash. Otherwise, just return the value
239
+ # @param [Object] value Any valid value
240
+ # @return [Hash] Returns the value in the form of hash
241
+ def _to_hash(value)
242
+ if value.is_a?(Array)
243
+ value.compact.map { |v| _to_hash(v) }
244
+ elsif value.is_a?(Hash)
245
+ {}.tap do |hash|
246
+ value.each { |k, v| hash[k] = _to_hash(v) }
247
+ end
248
+ elsif value.respond_to? :to_hash
249
+ value.to_hash
250
+ else
251
+ value
252
+ end
253
+ end
254
+
255
+ end
256
+
257
+ end
@@ -61,13 +61,13 @@ module Carbon
61
61
 
62
62
  attr_accessor :parse_pdf_tables_with_ocr
63
63
 
64
- # Enable integration's file picker for sources that support it. Supported sources: ONEDRIVE, GOOGLE_DRIVE, DROPBOX, BOX, SHAREPOINT
64
+ # Enable integration's file picker for sources that support it. Supported sources: BOX, ONEDRIVE, DROPBOX, SHAREPOINT, GOOGLE_DRIVE
65
65
  attr_accessor :enable_file_picker
66
66
 
67
67
  # Enabling this flag will fetch all available content from the source to be listed via list items endpoint
68
68
  attr_accessor :sync_source_items
69
69
 
70
- # Only sync files if they have not already been synced or if the embedding properties have changed. This flag is currently supported by ONEDRIVE, GOOGLE_DRIVE, BOX, DROPBOX. It will be ignored for other data sources.
70
+ # Only sync files if they have not already been synced or if the embedding properties have changed. This flag is currently supported by ONEDRIVE, GOOGLE_DRIVE, BOX, DROPBOX, INTERCOM, GMAIL, OUTLOOK. It will be ignored for other data sources.
71
71
  attr_accessor :incremental_sync
72
72
 
73
73
  attr_accessor :file_sync_config
@@ -279,7 +279,7 @@ module Carbon
279
279
  if attributes.key?(:'request_id')
280
280
  self.request_id = attributes[:'request_id']
281
281
  else
282
- self.request_id = '6c38b4bb-1536-46c9-ade7-72fabf05b3bb'
282
+ self.request_id = '8d34bb4e-31ad-411c-bb01-f19a466f9644'
283
283
  end
284
284
 
285
285
  if attributes.key?(:'use_ocr')
@@ -40,7 +40,7 @@ module Carbon
40
40
 
41
41
  attr_accessor :parse_pdf_tables_with_ocr
42
42
 
43
- # Only sync files if they have not already been synced or if the embedding properties have changed. This flag is currently supported by ONEDRIVE, GOOGLE_DRIVE, BOX, DROPBOX. It will be ignored for other data sources.
43
+ # Only sync files if they have not already been synced or if the embedding properties have changed. This flag is currently supported by ONEDRIVE, GOOGLE_DRIVE, BOX, DROPBOX, INTERCOM, GMAIL, OUTLOOK. It will be ignored for other data sources.
44
44
  attr_accessor :incremental_sync
45
45
 
46
46
  attr_accessor :file_sync_config
@@ -187,7 +187,7 @@ module Carbon
187
187
  if attributes.key?(:'request_id')
188
188
  self.request_id = attributes[:'request_id']
189
189
  else
190
- self.request_id = 'bcd3ae91-8bae-4d50-9046-94dc62b2078f'
190
+ self.request_id = '10dcc8bc-d3a9-477f-84c5-8ee86866c083'
191
191
  end
192
192
 
193
193
  if attributes.key?(:'use_ocr')
@@ -40,7 +40,7 @@ module Carbon
40
40
  # Enabling this flag will fetch all available content from the source to be listed via list items endpoint
41
41
  attr_accessor :sync_source_items
42
42
 
43
- # Only sync files if they have not already been synced or if the embedding properties have changed. This flag is currently supported by ONEDRIVE, GOOGLE_DRIVE, BOX, DROPBOX. It will be ignored for other data sources.
43
+ # Only sync files if they have not already been synced or if the embedding properties have changed. This flag is currently supported by ONEDRIVE, GOOGLE_DRIVE, BOX, DROPBOX, INTERCOM, GMAIL, OUTLOOK. It will be ignored for other data sources.
44
44
  attr_accessor :incremental_sync
45
45
 
46
46
  attr_accessor :file_sync_config
@@ -182,7 +182,7 @@ module Carbon
182
182
  if attributes.key?(:'request_id')
183
183
  self.request_id = attributes[:'request_id']
184
184
  else
185
- self.request_id = 'ae8cd936-69c9-42cd-affb-87f3bea6d8eb'
185
+ self.request_id = '8131a584-e13b-487a-bc3c-b381ae26de5f'
186
186
  end
187
187
 
188
188
  if attributes.key?(:'enable_file_picker')
@@ -0,0 +1,232 @@
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 UserListResponse
14
+ attr_accessor :users
15
+
16
+ attr_accessor :count
17
+
18
+ # Attribute mapping from ruby-style variable name to JSON key.
19
+ def self.attribute_map
20
+ {
21
+ :'users' => :'users',
22
+ :'count' => :'count'
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
+ :'users' => :'Array<ListUserResponse>',
35
+ :'count' => :'Integer'
36
+ }
37
+ end
38
+
39
+ # List of attributes with nullable: true
40
+ def self.openapi_nullable
41
+ Set.new([
42
+ :'count'
43
+ ])
44
+ end
45
+
46
+ # Initializes the object
47
+ # @param [Hash] attributes Model attributes in the form of hash
48
+ def initialize(attributes = {})
49
+ if (!attributes.is_a?(Hash))
50
+ fail ArgumentError, "The input argument (attributes) must be a hash in `Carbon::UserListResponse` initialize method"
51
+ end
52
+
53
+ # check to see if the attribute exists and convert string to symbol for hash key
54
+ attributes = attributes.each_with_object({}) { |(k, v), h|
55
+ if (!self.class.attribute_map.key?(k.to_sym))
56
+ fail ArgumentError, "`#{k}` is not a valid attribute in `Carbon::UserListResponse`. Please check the name to make sure it's valid. List of attributes: " + self.class.attribute_map.keys.inspect
57
+ end
58
+ h[k.to_sym] = v
59
+ }
60
+
61
+ if attributes.key?(:'users')
62
+ if (value = attributes[:'users']).is_a?(Array)
63
+ self.users = value
64
+ end
65
+ end
66
+
67
+ if attributes.key?(:'count')
68
+ self.count = attributes[:'count']
69
+ end
70
+ end
71
+
72
+ # Show invalid properties with the reasons. Usually used together with valid?
73
+ # @return Array for valid properties with the reasons
74
+ def list_invalid_properties
75
+ invalid_properties = Array.new
76
+ if @users.nil?
77
+ invalid_properties.push('invalid value for "users", users cannot be nil.')
78
+ end
79
+
80
+ invalid_properties
81
+ end
82
+
83
+ # Check to see if the all the properties in the model are valid
84
+ # @return true if the model is valid
85
+ def valid?
86
+ return false if @users.nil?
87
+ true
88
+ end
89
+
90
+ # Checks equality by comparing each attribute.
91
+ # @param [Object] Object to be compared
92
+ def ==(o)
93
+ return true if self.equal?(o)
94
+ self.class == o.class &&
95
+ users == o.users &&
96
+ count == o.count
97
+ end
98
+
99
+ # @see the `==` method
100
+ # @param [Object] Object to be compared
101
+ def eql?(o)
102
+ self == o
103
+ end
104
+
105
+ # Calculates hash code according to all attributes.
106
+ # @return [Integer] Hash code
107
+ def hash
108
+ [users, count].hash
109
+ end
110
+
111
+ # Builds the object from hash
112
+ # @param [Hash] attributes Model attributes in the form of hash
113
+ # @return [Object] Returns the model itself
114
+ def self.build_from_hash(attributes)
115
+ new.build_from_hash(attributes)
116
+ end
117
+
118
+ # Builds the object from hash
119
+ # @param [Hash] attributes Model attributes in the form of hash
120
+ # @return [Object] Returns the model itself
121
+ def build_from_hash(attributes)
122
+ return nil unless attributes.is_a?(Hash)
123
+ attributes = attributes.transform_keys(&:to_sym)
124
+ self.class.openapi_types.each_pair do |key, type|
125
+ if attributes[self.class.attribute_map[key]].nil? && self.class.openapi_nullable.include?(key)
126
+ self.send("#{key}=", nil)
127
+ elsif type =~ /\AArray<(.*)>/i
128
+ # check to ensure the input is an array given that the attribute
129
+ # is documented as an array but the input is not
130
+ if attributes[self.class.attribute_map[key]].is_a?(Array)
131
+ self.send("#{key}=", attributes[self.class.attribute_map[key]].map { |v| _deserialize($1, v) })
132
+ end
133
+ elsif !attributes[self.class.attribute_map[key]].nil?
134
+ self.send("#{key}=", _deserialize(type, attributes[self.class.attribute_map[key]]))
135
+ end
136
+ end
137
+
138
+ self
139
+ end
140
+
141
+ # Deserializes the data based on type
142
+ # @param string type Data type
143
+ # @param string value Value to be deserialized
144
+ # @return [Object] Deserialized data
145
+ def _deserialize(type, value)
146
+ case type.to_sym
147
+ when :Time
148
+ Time.parse(value)
149
+ when :Date
150
+ Date.parse(value)
151
+ when :String
152
+ value.to_s
153
+ when :Integer
154
+ value.to_i
155
+ when :Float
156
+ value.to_f
157
+ when :Boolean
158
+ if value.to_s =~ /\A(true|t|yes|y|1)\z/i
159
+ true
160
+ else
161
+ false
162
+ end
163
+ when :Object
164
+ # generic object (usually a Hash), return directly
165
+ value
166
+ when /\AArray<(?<inner_type>.+)>\z/
167
+ inner_type = Regexp.last_match[:inner_type]
168
+ value.map { |v| _deserialize(inner_type, v) }
169
+ when /\AHash<(?<k_type>.+?), (?<v_type>.+)>\z/
170
+ k_type = Regexp.last_match[:k_type]
171
+ v_type = Regexp.last_match[:v_type]
172
+ {}.tap do |hash|
173
+ value.each do |k, v|
174
+ hash[_deserialize(k_type, k)] = _deserialize(v_type, v)
175
+ end
176
+ end
177
+ else # model
178
+ # models (e.g. Pet) or oneOf
179
+ klass = Carbon.const_get(type)
180
+ klass.respond_to?(:openapi_one_of) ? klass.build(value) : klass.build_from_hash(value)
181
+ end
182
+ end
183
+
184
+ # Returns the string representation of the object
185
+ # @return [String] String presentation of the object
186
+ def to_s
187
+ to_hash.to_s
188
+ end
189
+
190
+ # to_body is an alias to to_hash (backward compatibility)
191
+ # @return [Hash] Returns the object in the form of hash
192
+ def to_body
193
+ to_hash
194
+ end
195
+
196
+ # Returns the object in the form of hash
197
+ # @return [Hash] Returns the object in the form of hash
198
+ def to_hash
199
+ hash = {}
200
+ self.class.attribute_map.each_pair do |attr, param|
201
+ value = self.send(attr)
202
+ if value.nil?
203
+ is_nullable = self.class.openapi_nullable.include?(attr)
204
+ next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}"))
205
+ end
206
+
207
+ hash[param] = _to_hash(value)
208
+ end
209
+ hash
210
+ end
211
+
212
+ # Outputs non-array value in the form of hash
213
+ # For object, use to_hash. Otherwise, just return the value
214
+ # @param [Object] value Any valid value
215
+ # @return [Hash] Returns the value in the form of hash
216
+ def _to_hash(value)
217
+ if value.is_a?(Array)
218
+ value.compact.map { |v| _to_hash(v) }
219
+ elsif value.is_a?(Hash)
220
+ {}.tap do |hash|
221
+ value.each { |k, v| hash[k] = _to_hash(v) }
222
+ end
223
+ elsif value.respond_to? :to_hash
224
+ value.to_hash
225
+ else
226
+ value
227
+ end
228
+ end
229
+
230
+ end
231
+
232
+ end
@@ -7,5 +7,5 @@ The version of the OpenAPI document: 1.0.0
7
7
  =end
8
8
 
9
9
  module Carbon
10
- VERSION = '0.2.9'
10
+ VERSION = '0.2.11'
11
11
  end
@@ -82,6 +82,10 @@ require 'carbon_ruby_sdk/models/list_items_filters'
82
82
  require 'carbon_ruby_sdk/models/list_items_filters_nullable'
83
83
  require 'carbon_ruby_sdk/models/list_request'
84
84
  require 'carbon_ruby_sdk/models/list_response'
85
+ require 'carbon_ruby_sdk/models/list_user_response'
86
+ require 'carbon_ruby_sdk/models/list_users_filters'
87
+ require 'carbon_ruby_sdk/models/list_users_order_by_types'
88
+ require 'carbon_ruby_sdk/models/list_users_request'
85
89
  require 'carbon_ruby_sdk/models/location_property_inner'
86
90
  require 'carbon_ruby_sdk/models/modify_user_configuration_input'
87
91
  require 'carbon_ruby_sdk/models/notion_authentication'
@@ -137,6 +141,7 @@ require 'carbon_ruby_sdk/models/user_configuration'
137
141
  require 'carbon_ruby_sdk/models/user_configuration_nullable'
138
142
  require 'carbon_ruby_sdk/models/user_file'
139
143
  require 'carbon_ruby_sdk/models/user_files_v2'
144
+ require 'carbon_ruby_sdk/models/user_list_response'
140
145
  require 'carbon_ruby_sdk/models/user_request_content'
141
146
  require 'carbon_ruby_sdk/models/user_response'
142
147
  require 'carbon_ruby_sdk/models/user_web_page_order_by_types'
@@ -257,7 +257,7 @@ describe 'IntegrationsApi' do
257
257
 
258
258
  # unit tests for sync_gmail
259
259
  # Gmail Sync
260
- # 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. &lt;b&gt;label&lt;/b&gt;: Inbuilt Gmail labels, for example \&quot;Important\&quot; or a custom label you created. &lt;b&gt;after&lt;/b&gt; or &lt;b&gt;before&lt;/b&gt;: 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. &lt;b&gt;is&lt;/b&gt;: Can have the following values - starred, important, snoozed, and unread Using keys or values outside of the specified values can lead to unexpected behaviour. An example of a basic query with filters can be &#x60;&#x60;&#x60;json { \&quot;filters\&quot;: { \&quot;key\&quot;: \&quot;label\&quot;, \&quot;value\&quot;: \&quot;Test\&quot; } } &#x60;&#x60;&#x60; Which will list all emails that have the label \&quot;Test\&quot;. You can use AND and OR operation in the following way: &#x60;&#x60;&#x60;json { \&quot;filters\&quot;: { \&quot;AND\&quot;: [ { \&quot;key\&quot;: \&quot;after\&quot;, \&quot;value\&quot;: \&quot;2024/01/07\&quot; }, { \&quot;OR\&quot;: [ { \&quot;key\&quot;: \&quot;label\&quot;, \&quot;value\&quot;: \&quot;Personal\&quot; }, { \&quot;key\&quot;: \&quot;is\&quot;, \&quot;value\&quot;: \&quot;starred\&quot; } ] } ] } } &#x60;&#x60;&#x60; This will return emails after 7th of Jan that are either starred or have the label \&quot;Personal\&quot;. Note that this is the highest level of nesting we support, i.e. you can&#39;t add more AND/OR filters within the OR filter in the above example.
260
+ # 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. &lt;b&gt;label&lt;/b&gt;: Inbuilt Gmail labels, for example \&quot;Important\&quot; or a custom label you created. &lt;b&gt;after&lt;/b&gt; or &lt;b&gt;before&lt;/b&gt;: 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. &lt;b&gt;is&lt;/b&gt;: Can have the following values - starred, important, snoozed, and unread &lt;b&gt;from&lt;/b&gt;: Email address of the sender &lt;b&gt;to&lt;/b&gt;: 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 &#x60;&#x60;&#x60;json { \&quot;filters\&quot;: { \&quot;key\&quot;: \&quot;label\&quot;, \&quot;value\&quot;: \&quot;Test\&quot; } } &#x60;&#x60;&#x60; Which will list all emails that have the label \&quot;Test\&quot;. You can use AND and OR operation in the following way: &#x60;&#x60;&#x60;json { \&quot;filters\&quot;: { \&quot;AND\&quot;: [ { \&quot;key\&quot;: \&quot;after\&quot;, \&quot;value\&quot;: \&quot;2024/01/07\&quot; }, { \&quot;OR\&quot;: [ { \&quot;key\&quot;: \&quot;label\&quot;, \&quot;value\&quot;: \&quot;Personal\&quot; }, { \&quot;key\&quot;: \&quot;is\&quot;, \&quot;value\&quot;: \&quot;starred\&quot; } ] } ] } } &#x60;&#x60;&#x60; This will return emails after 7th of Jan that are either starred or have the label \&quot;Personal\&quot;. Note that this is the highest level of nesting we support, i.e. you can&#39;t add more AND/OR filters within the OR filter in the above example.
261
261
  # @param gmail_sync_input
262
262
  # @param [Hash] opts the optional parameters
263
263
  # @return [GenericSuccessResponse]
@@ -269,7 +269,7 @@ describe 'IntegrationsApi' do
269
269
 
270
270
  # unit tests for sync_outlook
271
271
  # Outlook Sync
272
- # Once you have successfully connected your Outlook account, you can choose which emails to sync with us using the filters and folder parameter. \&quot;folder\&quot; should be the folder you want to sync from Outlook. By default we get messages from your inbox folder. 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. &lt;b&gt;category&lt;/b&gt;: Custom categories that you created in Outlook. &lt;b&gt;after&lt;/b&gt; or &lt;b&gt;before&lt;/b&gt;: 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. &lt;b&gt;is&lt;/b&gt;: Can have the following values: flagged An example of a basic query with filters can be &#x60;&#x60;&#x60;json { \&quot;filters\&quot;: { \&quot;key\&quot;: \&quot;category\&quot;, \&quot;value\&quot;: \&quot;Test\&quot; } } &#x60;&#x60;&#x60; Which will list all emails that have the category \&quot;Test\&quot;. Specifying a custom folder in the same query &#x60;&#x60;&#x60;json { \&quot;folder\&quot;: \&quot;Folder Name\&quot;, \&quot;filters\&quot;: { \&quot;key\&quot;: \&quot;category\&quot;, \&quot;value\&quot;: \&quot;Test\&quot; } } &#x60;&#x60;&#x60; You can use AND and OR operation in the following way: &#x60;&#x60;&#x60;json { \&quot;filters\&quot;: { \&quot;AND\&quot;: [ { \&quot;key\&quot;: \&quot;after\&quot;, \&quot;value\&quot;: \&quot;2024/01/07\&quot; }, { \&quot;OR\&quot;: [ { \&quot;key\&quot;: \&quot;category\&quot;, \&quot;value\&quot;: \&quot;Personal\&quot; }, { \&quot;key\&quot;: \&quot;category\&quot;, \&quot;value\&quot;: \&quot;Test\&quot; }, ] } ] } } &#x60;&#x60;&#x60; This will return emails after 7th of Jan that have either Personal or Test as category. Note that this is the highest level of nesting we support, i.e. you can&#39;t add more AND/OR filters within the OR filter in the above example.
272
+ # Once you have successfully connected your Outlook account, you can choose which emails to sync with us using the filters and folder parameter. \&quot;folder\&quot; should be the folder you want to sync from Outlook. By default we get messages from your inbox folder. 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. &lt;b&gt;category&lt;/b&gt;: Custom categories that you created in Outlook. &lt;b&gt;after&lt;/b&gt; or &lt;b&gt;before&lt;/b&gt;: 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. &lt;b&gt;is&lt;/b&gt;: Can have the following values: flagged &lt;b&gt;from&lt;/b&gt;: Email address of the sender An example of a basic query with filters can be &#x60;&#x60;&#x60;json { \&quot;filters\&quot;: { \&quot;key\&quot;: \&quot;category\&quot;, \&quot;value\&quot;: \&quot;Test\&quot; } } &#x60;&#x60;&#x60; Which will list all emails that have the category \&quot;Test\&quot;. Specifying a custom folder in the same query &#x60;&#x60;&#x60;json { \&quot;folder\&quot;: \&quot;Folder Name\&quot;, \&quot;filters\&quot;: { \&quot;key\&quot;: \&quot;category\&quot;, \&quot;value\&quot;: \&quot;Test\&quot; } } &#x60;&#x60;&#x60; You can use AND and OR operation in the following way: &#x60;&#x60;&#x60;json { \&quot;filters\&quot;: { \&quot;AND\&quot;: [ { \&quot;key\&quot;: \&quot;after\&quot;, \&quot;value\&quot;: \&quot;2024/01/07\&quot; }, { \&quot;OR\&quot;: [ { \&quot;key\&quot;: \&quot;category\&quot;, \&quot;value\&quot;: \&quot;Personal\&quot; }, { \&quot;key\&quot;: \&quot;category\&quot;, \&quot;value\&quot;: \&quot;Test\&quot; }, ] } ] } } &#x60;&#x60;&#x60; This will return emails after 7th of Jan that have either Personal or Test as category. Note that this is the highest level of nesting we support, i.e. you can&#39;t add more AND/OR filters within the OR filter in the above example.
273
273
  # @param outlook_sync_input
274
274
  # @param [Hash] opts the optional parameters
275
275
  # @return [GenericSuccessResponse]
@@ -48,6 +48,18 @@ describe 'UsersApi' do
48
48
  end
49
49
  end
50
50
 
51
+ # unit tests for list
52
+ # List Users Endpoint
53
+ # List users within an organization
54
+ # @param list_users_request
55
+ # @param [Hash] opts the optional parameters
56
+ # @return [UserListResponse]
57
+ describe 'list test' do
58
+ it 'should work' do
59
+ # assertion here. ref: https://www.relishapp.com/rspec/rspec-expectations/docs/built-in-matchers
60
+ end
61
+ end
62
+
51
63
  # unit tests for toggle_user_features
52
64
  # Toggle User Features
53
65
  # @param modify_user_configuration_input
@@ -109,4 +109,10 @@ describe Carbon::GetEmbeddingDocumentsBody do
109
109
  end
110
110
  end
111
111
 
112
+ describe 'test attribute "include_file_level_metadata"' do
113
+ it 'should work' do
114
+ # assertion here. ref: https://www.relishapp.com/rspec/rspec-expectations/docs/built-in-matchers
115
+ end
116
+ end
117
+
112
118
  end