composio 0.1.16 → 0.1.18
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Gemfile.lock +2 -2
- data/README.md +32 -6
- data/lib/composio/api/actions_api.rb +51 -28
- data/lib/composio/models/action_get_nla_inputs_req_dto.rb +22 -4
- data/lib/composio/models/action_proxy_request_config_dto.rb +277 -0
- data/lib/composio/models/action_proxy_request_method_dto.rb +226 -0
- data/lib/composio/models/direct_execute_req_dto.rb +13 -4
- data/lib/composio/models/get_logs_dto.rb +1 -1
- data/lib/composio/models/get_logs_dto_type.rb +37 -0
- data/lib/composio/models/method.rb +39 -0
- data/lib/composio/models/model_in.rb +36 -0
- data/lib/composio/models/parameter.rb +4 -1
- data/lib/composio/models/type.rb +7 -4
- data/lib/composio/version.rb +1 -1
- data/lib/composio.rb +5 -0
- data/spec/api/actions_api_spec.rb +1 -2
- data/spec/models/action_get_nla_inputs_req_dto_spec.rb +12 -0
- data/spec/models/action_proxy_request_config_dto_spec.rb +52 -0
- data/spec/models/action_proxy_request_method_dto_spec.rb +34 -0
- data/spec/models/direct_execute_req_dto_spec.rb +6 -0
- data/spec/models/get_logs_dto_type_spec.rb +22 -0
- data/spec/models/method_spec.rb +22 -0
- data/spec/models/model_in_spec.rb +22 -0
- metadata +17 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 7e159e04da778db5183ba972a5bcddcec90b4a285b9a458f387b78665f54f72c
|
4
|
+
data.tar.gz: 6d044064e6b05b7fa669c46ac11955677f525cb50b14aa1f7460d384113e0ef7
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 3998260f127abb9d6e74165619c208e82405e3981cb765f76523fb1fc2c4f18aeb37c9dbfb07eb44ed2c9a177b1eb1a798b57a3603288a6cd5a8198a1c339c50
|
7
|
+
data.tar.gz: e1054a76db9bc3fc4fdd95070991abf618e4691660f997cc1531bd095db11345ea3382ec40dcdcf832323990fe9c3981488d783c78f4a84451e46c407847c94d
|
data/Gemfile.lock
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
composio (0.1.
|
4
|
+
composio (0.1.18)
|
5
5
|
faraday (>= 1.0.1, < 3.0)
|
6
6
|
faraday-multipart (~> 1.0, >= 1.0.4)
|
7
7
|
|
@@ -67,7 +67,7 @@ GEM
|
|
67
67
|
rubocop-ast (>= 1.2.0, < 2.0)
|
68
68
|
ruby-progressbar (~> 1.7)
|
69
69
|
unicode-display_width (>= 1.4.0, < 3.0)
|
70
|
-
rubocop-ast (1.
|
70
|
+
rubocop-ast (1.36.1)
|
71
71
|
parser (>= 3.3.1.0)
|
72
72
|
ruby-progressbar (1.13.0)
|
73
73
|
ruby2_keywords (0.0.5)
|
data/README.md
CHANGED
@@ -6,7 +6,7 @@
|
|
6
6
|
|
7
7
|
Composio SDK: Equip your agent with high-quality tools and build your real-world usecase
|
8
8
|
|
9
|
-
[![npm](https://img.shields.io/badge/gem-v0.1.
|
9
|
+
[![npm](https://img.shields.io/badge/gem-v0.1.18-blue)](https://rubygems.org/gems/composio/versions/0.1.18)
|
10
10
|
[![More Info](https://img.shields.io/badge/More%20Info-Click%20Here-orange)](https://composio.dev)
|
11
11
|
|
12
12
|
</div>
|
@@ -77,7 +77,7 @@ Composio SDK: Equip your agent with high-quality tools and build your real-world
|
|
77
77
|
Add to Gemfile:
|
78
78
|
|
79
79
|
```ruby
|
80
|
-
gem 'composio', '~> 0.1.
|
80
|
+
gem 'composio', '~> 0.1.18'
|
81
81
|
```
|
82
82
|
|
83
83
|
## Getting Started<a id="getting-started"></a>
|
@@ -214,7 +214,7 @@ result = composio.actions.execute(
|
|
214
214
|
"parameters" => [
|
215
215
|
{
|
216
216
|
"name" => "name_example",
|
217
|
-
"_in" => "
|
217
|
+
"_in" => "query",
|
218
218
|
"value" => "value_example",
|
219
219
|
}
|
220
220
|
],
|
@@ -260,16 +260,38 @@ Execute an action with direct auth.
|
|
260
260
|
|
261
261
|
```ruby
|
262
262
|
result = composio.actions.execute_action_proxy(
|
263
|
-
|
264
|
-
|
263
|
+
parameters: [
|
264
|
+
{
|
265
|
+
"name" => "name_example",
|
266
|
+
"_in" => "query",
|
267
|
+
"value" => "value_example",
|
268
|
+
}
|
269
|
+
],
|
270
|
+
connected_account_id: "string_example",
|
271
|
+
endpoint: "string_example",
|
272
|
+
method: "GET",
|
273
|
+
body: {},
|
265
274
|
)
|
266
275
|
p result
|
267
276
|
```
|
268
277
|
|
269
278
|
#### ⚙️ Parameters<a id="⚙️-parameters"></a>
|
270
279
|
|
280
|
+
##### parameters: Array<[`Parameter`](./lib/composio/models/parameter.rb)><a id="parameters-array"></a>
|
281
|
+
##### connectedAccountId: `String`<a id="connectedaccountid-string"></a>
|
282
|
+
The connected account uuid to use for the action.
|
283
|
+
|
271
284
|
##### endpoint: `String`<a id="endpoint-string"></a>
|
272
|
-
|
285
|
+
The endpoint to call for the action. If the given url is relative, it will be
|
286
|
+
resolved relative to the base_url set in the connected account info.
|
287
|
+
|
288
|
+
##### method: [`Method`](./lib/composio/models/method.rb)<a id="method-methodlibcomposiomodelsmethodrb"></a>
|
289
|
+
The HTTP method to use for the action.
|
290
|
+
|
291
|
+
##### body: `Object`<a id="body-object"></a>
|
292
|
+
The body to be sent to the endpoint. This can either be a JSON field or a
|
293
|
+
string.
|
294
|
+
|
273
295
|
#### 🔄 Return<a id="🔄-return"></a>
|
274
296
|
|
275
297
|
[ActionExecutionResDto](./lib/composio/models/action_execution_res_dto.rb)
|
@@ -322,6 +344,8 @@ Get the inputs for an action with NLA
|
|
322
344
|
result = composio.actions.get_action_inputs(
|
323
345
|
text: "string_example",
|
324
346
|
action_id: "'+j>6",
|
347
|
+
custom_description: "string_example",
|
348
|
+
system_prompt: "string_example",
|
325
349
|
)
|
326
350
|
p result
|
327
351
|
```
|
@@ -330,6 +354,8 @@ p result
|
|
330
354
|
|
331
355
|
##### text: `String`<a id="text-string"></a>
|
332
356
|
##### action_id: `String`<a id="action_id-string"></a>
|
357
|
+
##### customDescription: `String`<a id="customdescription-string"></a>
|
358
|
+
##### systemPrompt: `String`<a id="systemprompt-string"></a>
|
333
359
|
#### 🌐 Endpoint<a id="🌐-endpoint"></a>
|
334
360
|
|
335
361
|
`/api/v2/actions/{actionId}/execute/get.inputs` `POST`
|
@@ -163,11 +163,22 @@ module Composio
|
|
163
163
|
#
|
164
164
|
# Execute an action with direct auth.
|
165
165
|
#
|
166
|
-
# @param
|
167
|
-
# @param connected_account_id [String]
|
166
|
+
# @param parameters [Array<Parameter>]
|
167
|
+
# @param connected_account_id [String] The connected account uuid to use for the action.
|
168
|
+
# @param endpoint [String] The endpoint to call for the action. If the given url is relative, it will be resolved relative to the base_url set in the connected account info.
|
169
|
+
# @param method [Method] The HTTP method to use for the action.
|
170
|
+
# @param body [Object] The body to be sent to the endpoint. This can either be a JSON field or a string.
|
171
|
+
# @param body [ActionProxyRequestConfigDTO]
|
168
172
|
# @param [Hash] extra additional parameters to pass along through :header_params, :query_params, or parameter name
|
169
|
-
def execute_action_proxy(
|
170
|
-
|
173
|
+
def execute_action_proxy(parameters:, connected_account_id:, endpoint:, method:, body: SENTINEL, extra: {})
|
174
|
+
_body = {}
|
175
|
+
_body[:parameters] = parameters if parameters != SENTINEL
|
176
|
+
_body[:connectedAccountId] = connected_account_id if connected_account_id != SENTINEL
|
177
|
+
_body[:endpoint] = endpoint if endpoint != SENTINEL
|
178
|
+
_body[:method] = method if method != SENTINEL
|
179
|
+
_body[:body] = body if body != SENTINEL
|
180
|
+
extra[:action_proxy_request_config_dto] = _body if !_body.empty?
|
181
|
+
api_response = execute_action_proxy_with_http_info_impl(extra)
|
171
182
|
api_response.data
|
172
183
|
end
|
173
184
|
|
@@ -175,60 +186,64 @@ module Composio
|
|
175
186
|
#
|
176
187
|
# Execute an action with direct auth.
|
177
188
|
#
|
178
|
-
# @param
|
179
|
-
# @param connected_account_id [String]
|
189
|
+
# @param parameters [Array<Parameter>]
|
190
|
+
# @param connected_account_id [String] The connected account uuid to use for the action.
|
191
|
+
# @param endpoint [String] The endpoint to call for the action. If the given url is relative, it will be resolved relative to the base_url set in the connected account info.
|
192
|
+
# @param method [Method] The HTTP method to use for the action.
|
193
|
+
# @param body [Object] The body to be sent to the endpoint. This can either be a JSON field or a string.
|
194
|
+
# @param body [ActionProxyRequestConfigDTO]
|
180
195
|
# @param [Hash] extra additional parameters to pass along through :header_params, :query_params, or parameter name
|
181
|
-
def execute_action_proxy_with_http_info(
|
182
|
-
|
196
|
+
def execute_action_proxy_with_http_info(parameters:, connected_account_id:, endpoint:, method:, body: SENTINEL, extra: {})
|
197
|
+
_body = {}
|
198
|
+
_body[:parameters] = parameters if parameters != SENTINEL
|
199
|
+
_body[:connectedAccountId] = connected_account_id if connected_account_id != SENTINEL
|
200
|
+
_body[:endpoint] = endpoint if endpoint != SENTINEL
|
201
|
+
_body[:method] = method if method != SENTINEL
|
202
|
+
_body[:body] = body if body != SENTINEL
|
203
|
+
extra[:action_proxy_request_config_dto] = _body if !_body.empty?
|
204
|
+
execute_action_proxy_with_http_info_impl(extra)
|
183
205
|
end
|
184
206
|
|
185
207
|
# Execute action proxy
|
186
208
|
# Execute an action with direct auth.
|
187
|
-
# @param endpoint [String]
|
188
|
-
# @param connected_account_id [String]
|
189
209
|
# @param [Hash] opts the optional parameters
|
210
|
+
# @option opts [ActionProxyRequestConfigDTO] :action_proxy_request_config_dto ActionProxyRequestConfigDTO
|
190
211
|
# @return [ActionExecutionResDto]
|
191
|
-
private def execute_action_proxy_impl(
|
192
|
-
data, _status_code, _headers = execute_action_proxy_with_http_info(
|
212
|
+
private def execute_action_proxy_impl(opts = {})
|
213
|
+
data, _status_code, _headers = execute_action_proxy_with_http_info(opts)
|
193
214
|
data
|
194
215
|
end
|
195
216
|
|
196
217
|
# Execute action proxy
|
197
218
|
# Execute an action with direct auth.
|
198
|
-
# @param endpoint [String]
|
199
|
-
# @param connected_account_id [String]
|
200
219
|
# @param [Hash] opts the optional parameters
|
220
|
+
# @option opts [ActionProxyRequestConfigDTO] :action_proxy_request_config_dto ActionProxyRequestConfigDTO
|
201
221
|
# @return [APIResponse] data is ActionExecutionResDto, status code, headers and response
|
202
|
-
private def execute_action_proxy_with_http_info_impl(
|
222
|
+
private def execute_action_proxy_with_http_info_impl(opts = {})
|
203
223
|
if @api_client.config.debugging
|
204
224
|
@api_client.config.logger.debug 'Calling API: ActionsApi.execute_action_proxy ...'
|
205
225
|
end
|
206
|
-
# verify the required parameter 'endpoint' is set
|
207
|
-
if @api_client.config.client_side_validation && endpoint.nil?
|
208
|
-
fail ArgumentError, "Missing the required parameter 'endpoint' when calling ActionsApi.execute_action_proxy"
|
209
|
-
end
|
210
|
-
# verify the required parameter 'connected_account_id' is set
|
211
|
-
if @api_client.config.client_side_validation && connected_account_id.nil?
|
212
|
-
fail ArgumentError, "Missing the required parameter 'connected_account_id' when calling ActionsApi.execute_action_proxy"
|
213
|
-
end
|
214
226
|
# resource path
|
215
227
|
local_var_path = '/api/v2/actions/proxy'
|
216
228
|
|
217
229
|
# query parameters
|
218
230
|
query_params = opts[:query_params] || {}
|
219
|
-
query_params[:'endpoint'] = endpoint
|
220
|
-
query_params[:'connectedAccountId'] = connected_account_id
|
221
231
|
|
222
232
|
# header parameters
|
223
233
|
header_params = opts[:header_params] || {}
|
224
234
|
# HTTP header 'Accept' (if needed)
|
225
235
|
header_params['Accept'] = @api_client.select_header_accept(['application/json'])
|
236
|
+
# HTTP header 'Content-Type'
|
237
|
+
content_type = @api_client.select_header_content_type(['application/json'])
|
238
|
+
if !content_type.nil?
|
239
|
+
header_params['Content-Type'] = content_type
|
240
|
+
end
|
226
241
|
|
227
242
|
# form parameters
|
228
243
|
form_params = opts[:form_params] || {}
|
229
244
|
|
230
245
|
# http body (model)
|
231
|
-
post_body = opts[:debug_body]
|
246
|
+
post_body = opts[:debug_body] || @api_client.object_to_http_body(opts[:'action_proxy_request_config_dto'])
|
232
247
|
|
233
248
|
# return_type
|
234
249
|
return_type = opts[:debug_return_type] || 'ActionExecutionResDto'
|
@@ -350,11 +365,15 @@ module Composio
|
|
350
365
|
#
|
351
366
|
# @param text [String]
|
352
367
|
# @param action_id [String]
|
368
|
+
# @param custom_description [String]
|
369
|
+
# @param system_prompt [String]
|
353
370
|
# @param body [ActionGetNLAInputsReqDTO]
|
354
371
|
# @param [Hash] extra additional parameters to pass along through :header_params, :query_params, or parameter name
|
355
|
-
def get_action_inputs(text:, action_id:, extra: {})
|
372
|
+
def get_action_inputs(text:, action_id:, custom_description: SENTINEL, system_prompt: SENTINEL, extra: {})
|
356
373
|
_body = {}
|
357
374
|
_body[:text] = text if text != SENTINEL
|
375
|
+
_body[:customDescription] = custom_description if custom_description != SENTINEL
|
376
|
+
_body[:systemPrompt] = system_prompt if system_prompt != SENTINEL
|
358
377
|
extra[:action_get_nla_inputs_req_dto] = _body if !_body.empty?
|
359
378
|
api_response = get_action_inputs_with_http_info_impl(action_id, extra)
|
360
379
|
api_response.data
|
@@ -366,11 +385,15 @@ module Composio
|
|
366
385
|
#
|
367
386
|
# @param text [String]
|
368
387
|
# @param action_id [String]
|
388
|
+
# @param custom_description [String]
|
389
|
+
# @param system_prompt [String]
|
369
390
|
# @param body [ActionGetNLAInputsReqDTO]
|
370
391
|
# @param [Hash] extra additional parameters to pass along through :header_params, :query_params, or parameter name
|
371
|
-
def get_action_inputs_with_http_info(text:, action_id:, extra: {})
|
392
|
+
def get_action_inputs_with_http_info(text:, action_id:, custom_description: SENTINEL, system_prompt: SENTINEL, extra: {})
|
372
393
|
_body = {}
|
373
394
|
_body[:text] = text if text != SENTINEL
|
395
|
+
_body[:customDescription] = custom_description if custom_description != SENTINEL
|
396
|
+
_body[:systemPrompt] = system_prompt if system_prompt != SENTINEL
|
374
397
|
extra[:action_get_nla_inputs_req_dto] = _body if !_body.empty?
|
375
398
|
get_action_inputs_with_http_info_impl(action_id, extra)
|
376
399
|
end
|
@@ -13,10 +13,16 @@ module Composio
|
|
13
13
|
class ActionGetNLAInputsReqDTO
|
14
14
|
attr_accessor :text
|
15
15
|
|
16
|
+
attr_accessor :custom_description
|
17
|
+
|
18
|
+
attr_accessor :system_prompt
|
19
|
+
|
16
20
|
# Attribute mapping from ruby-style variable name to JSON key.
|
17
21
|
def self.attribute_map
|
18
22
|
{
|
19
|
-
:'text' => :'text'
|
23
|
+
:'text' => :'text',
|
24
|
+
:'custom_description' => :'customDescription',
|
25
|
+
:'system_prompt' => :'systemPrompt'
|
20
26
|
}
|
21
27
|
end
|
22
28
|
|
@@ -28,7 +34,9 @@ module Composio
|
|
28
34
|
# Attribute type mapping.
|
29
35
|
def self.openapi_types
|
30
36
|
{
|
31
|
-
:'text' => :'String'
|
37
|
+
:'text' => :'String',
|
38
|
+
:'custom_description' => :'String',
|
39
|
+
:'system_prompt' => :'String'
|
32
40
|
}
|
33
41
|
end
|
34
42
|
|
@@ -56,6 +64,14 @@ module Composio
|
|
56
64
|
if attributes.key?(:'text')
|
57
65
|
self.text = attributes[:'text']
|
58
66
|
end
|
67
|
+
|
68
|
+
if attributes.key?(:'custom_description')
|
69
|
+
self.custom_description = attributes[:'custom_description']
|
70
|
+
end
|
71
|
+
|
72
|
+
if attributes.key?(:'system_prompt')
|
73
|
+
self.system_prompt = attributes[:'system_prompt']
|
74
|
+
end
|
59
75
|
end
|
60
76
|
|
61
77
|
# Show invalid properties with the reasons. Usually used together with valid?
|
@@ -81,7 +97,9 @@ module Composio
|
|
81
97
|
def ==(o)
|
82
98
|
return true if self.equal?(o)
|
83
99
|
self.class == o.class &&
|
84
|
-
text == o.text
|
100
|
+
text == o.text &&
|
101
|
+
custom_description == o.custom_description &&
|
102
|
+
system_prompt == o.system_prompt
|
85
103
|
end
|
86
104
|
|
87
105
|
# @see the `==` method
|
@@ -93,7 +111,7 @@ module Composio
|
|
93
111
|
# Calculates hash code according to all attributes.
|
94
112
|
# @return [Integer] Hash code
|
95
113
|
def hash
|
96
|
-
[text].hash
|
114
|
+
[text, custom_description, system_prompt].hash
|
97
115
|
end
|
98
116
|
|
99
117
|
# Builds the object from hash
|
@@ -0,0 +1,277 @@
|
|
1
|
+
=begin
|
2
|
+
#Composio OpenAPI
|
3
|
+
|
4
|
+
#Composio SDK: Equip your agent with high-quality tools and build your real-world usecase
|
5
|
+
|
6
|
+
The version of the OpenAPI document: 1.0.0
|
7
|
+
=end
|
8
|
+
|
9
|
+
require 'date'
|
10
|
+
require 'time'
|
11
|
+
|
12
|
+
module Composio
|
13
|
+
class ActionProxyRequestConfigDTO
|
14
|
+
attr_accessor :parameters
|
15
|
+
|
16
|
+
# The connected account uuid to use for the action.
|
17
|
+
attr_accessor :connected_account_id
|
18
|
+
|
19
|
+
# The endpoint to call for the action. If the given url is relative, it will be resolved relative to the base_url set in the connected account info.
|
20
|
+
attr_accessor :endpoint
|
21
|
+
|
22
|
+
# The HTTP method to use for the action.
|
23
|
+
attr_accessor :method
|
24
|
+
|
25
|
+
# The body to be sent to the endpoint. This can either be a JSON field or a string.
|
26
|
+
attr_accessor :body
|
27
|
+
|
28
|
+
# Attribute mapping from ruby-style variable name to JSON key.
|
29
|
+
def self.attribute_map
|
30
|
+
{
|
31
|
+
:'parameters' => :'parameters',
|
32
|
+
:'connected_account_id' => :'connectedAccountId',
|
33
|
+
:'endpoint' => :'endpoint',
|
34
|
+
:'method' => :'method',
|
35
|
+
:'body' => :'body'
|
36
|
+
}
|
37
|
+
end
|
38
|
+
|
39
|
+
# Returns all the JSON keys this model knows about
|
40
|
+
def self.acceptable_attributes
|
41
|
+
attribute_map.values
|
42
|
+
end
|
43
|
+
|
44
|
+
# Attribute type mapping.
|
45
|
+
def self.openapi_types
|
46
|
+
{
|
47
|
+
:'parameters' => :'Array<Parameter>',
|
48
|
+
:'connected_account_id' => :'String',
|
49
|
+
:'endpoint' => :'String',
|
50
|
+
:'method' => :'Method',
|
51
|
+
:'body' => :'Object'
|
52
|
+
}
|
53
|
+
end
|
54
|
+
|
55
|
+
# List of attributes with nullable: true
|
56
|
+
def self.openapi_nullable
|
57
|
+
Set.new([
|
58
|
+
])
|
59
|
+
end
|
60
|
+
|
61
|
+
# Initializes the object
|
62
|
+
# @param [Hash] attributes Model attributes in the form of hash
|
63
|
+
def initialize(attributes = {})
|
64
|
+
if (!attributes.is_a?(Hash))
|
65
|
+
fail ArgumentError, "The input argument (attributes) must be a hash in `Composio::ActionProxyRequestConfigDTO` initialize method"
|
66
|
+
end
|
67
|
+
|
68
|
+
# check to see if the attribute exists and convert string to symbol for hash key
|
69
|
+
attributes = attributes.each_with_object({}) { |(k, v), h|
|
70
|
+
if (!self.class.attribute_map.key?(k.to_sym))
|
71
|
+
fail ArgumentError, "`#{k}` is not a valid attribute in `Composio::ActionProxyRequestConfigDTO`. Please check the name to make sure it's valid. List of attributes: " + self.class.attribute_map.keys.inspect
|
72
|
+
end
|
73
|
+
h[k.to_sym] = v
|
74
|
+
}
|
75
|
+
|
76
|
+
if attributes.key?(:'parameters')
|
77
|
+
if (value = attributes[:'parameters']).is_a?(Array)
|
78
|
+
self.parameters = value
|
79
|
+
end
|
80
|
+
end
|
81
|
+
|
82
|
+
if attributes.key?(:'connected_account_id')
|
83
|
+
self.connected_account_id = attributes[:'connected_account_id']
|
84
|
+
end
|
85
|
+
|
86
|
+
if attributes.key?(:'endpoint')
|
87
|
+
self.endpoint = attributes[:'endpoint']
|
88
|
+
end
|
89
|
+
|
90
|
+
if attributes.key?(:'method')
|
91
|
+
self.method = attributes[:'method']
|
92
|
+
end
|
93
|
+
|
94
|
+
if attributes.key?(:'body')
|
95
|
+
self.body = attributes[:'body']
|
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
|
+
if @parameters.nil?
|
104
|
+
invalid_properties.push('invalid value for "parameters", parameters cannot be nil.')
|
105
|
+
end
|
106
|
+
|
107
|
+
if @connected_account_id.nil?
|
108
|
+
invalid_properties.push('invalid value for "connected_account_id", connected_account_id cannot be nil.')
|
109
|
+
end
|
110
|
+
|
111
|
+
if @endpoint.nil?
|
112
|
+
invalid_properties.push('invalid value for "endpoint", endpoint cannot be nil.')
|
113
|
+
end
|
114
|
+
|
115
|
+
if @method.nil?
|
116
|
+
invalid_properties.push('invalid value for "method", method cannot be nil.')
|
117
|
+
end
|
118
|
+
|
119
|
+
invalid_properties
|
120
|
+
end
|
121
|
+
|
122
|
+
# Check to see if the all the properties in the model are valid
|
123
|
+
# @return true if the model is valid
|
124
|
+
def valid?
|
125
|
+
return false if @parameters.nil?
|
126
|
+
return false if @connected_account_id.nil?
|
127
|
+
return false if @endpoint.nil?
|
128
|
+
return false if @method.nil?
|
129
|
+
true
|
130
|
+
end
|
131
|
+
|
132
|
+
# Checks equality by comparing each attribute.
|
133
|
+
# @param [Object] Object to be compared
|
134
|
+
def ==(o)
|
135
|
+
return true if self.equal?(o)
|
136
|
+
self.class == o.class &&
|
137
|
+
parameters == o.parameters &&
|
138
|
+
connected_account_id == o.connected_account_id &&
|
139
|
+
endpoint == o.endpoint &&
|
140
|
+
method == o.method &&
|
141
|
+
body == o.body
|
142
|
+
end
|
143
|
+
|
144
|
+
# @see the `==` method
|
145
|
+
# @param [Object] Object to be compared
|
146
|
+
def eql?(o)
|
147
|
+
self == o
|
148
|
+
end
|
149
|
+
|
150
|
+
# Calculates hash code according to all attributes.
|
151
|
+
# @return [Integer] Hash code
|
152
|
+
def hash
|
153
|
+
[parameters, connected_account_id, endpoint, method, body].hash
|
154
|
+
end
|
155
|
+
|
156
|
+
# Builds the object from hash
|
157
|
+
# @param [Hash] attributes Model attributes in the form of hash
|
158
|
+
# @return [Object] Returns the model itself
|
159
|
+
def self.build_from_hash(attributes)
|
160
|
+
new.build_from_hash(attributes)
|
161
|
+
end
|
162
|
+
|
163
|
+
# Builds the object from hash
|
164
|
+
# @param [Hash] attributes Model attributes in the form of hash
|
165
|
+
# @return [Object] Returns the model itself
|
166
|
+
def build_from_hash(attributes)
|
167
|
+
return nil unless attributes.is_a?(Hash)
|
168
|
+
attributes = attributes.transform_keys(&:to_sym)
|
169
|
+
self.class.openapi_types.each_pair do |key, type|
|
170
|
+
if attributes[self.class.attribute_map[key]].nil? && self.class.openapi_nullable.include?(key)
|
171
|
+
self.send("#{key}=", nil)
|
172
|
+
elsif type =~ /\AArray<(.*)>/i
|
173
|
+
# check to ensure the input is an array given that the attribute
|
174
|
+
# is documented as an array but the input is not
|
175
|
+
if attributes[self.class.attribute_map[key]].is_a?(Array)
|
176
|
+
self.send("#{key}=", attributes[self.class.attribute_map[key]].map { |v| _deserialize($1, v) })
|
177
|
+
end
|
178
|
+
elsif !attributes[self.class.attribute_map[key]].nil?
|
179
|
+
self.send("#{key}=", _deserialize(type, attributes[self.class.attribute_map[key]]))
|
180
|
+
end
|
181
|
+
end
|
182
|
+
|
183
|
+
self
|
184
|
+
end
|
185
|
+
|
186
|
+
# Deserializes the data based on type
|
187
|
+
# @param string type Data type
|
188
|
+
# @param string value Value to be deserialized
|
189
|
+
# @return [Object] Deserialized data
|
190
|
+
def _deserialize(type, value)
|
191
|
+
case type.to_sym
|
192
|
+
when :Time
|
193
|
+
Time.parse(value)
|
194
|
+
when :Date
|
195
|
+
Date.parse(value)
|
196
|
+
when :String
|
197
|
+
value.to_s
|
198
|
+
when :Integer
|
199
|
+
value.to_i
|
200
|
+
when :Float
|
201
|
+
value.to_f
|
202
|
+
when :Boolean
|
203
|
+
if value.to_s =~ /\A(true|t|yes|y|1)\z/i
|
204
|
+
true
|
205
|
+
else
|
206
|
+
false
|
207
|
+
end
|
208
|
+
when :Object
|
209
|
+
# generic object (usually a Hash), return directly
|
210
|
+
value
|
211
|
+
when /\AArray<(?<inner_type>.+)>\z/
|
212
|
+
inner_type = Regexp.last_match[:inner_type]
|
213
|
+
value.map { |v| _deserialize(inner_type, v) }
|
214
|
+
when /\AHash<(?<k_type>.+?), (?<v_type>.+)>\z/
|
215
|
+
k_type = Regexp.last_match[:k_type]
|
216
|
+
v_type = Regexp.last_match[:v_type]
|
217
|
+
{}.tap do |hash|
|
218
|
+
value.each do |k, v|
|
219
|
+
hash[_deserialize(k_type, k)] = _deserialize(v_type, v)
|
220
|
+
end
|
221
|
+
end
|
222
|
+
else # model
|
223
|
+
# models (e.g. Pet) or oneOf
|
224
|
+
klass = Composio.const_get(type)
|
225
|
+
klass.respond_to?(:openapi_one_of) ? klass.build(value) : klass.build_from_hash(value)
|
226
|
+
end
|
227
|
+
end
|
228
|
+
|
229
|
+
# Returns the string representation of the object
|
230
|
+
# @return [String] String presentation of the object
|
231
|
+
def to_s
|
232
|
+
to_hash.to_s
|
233
|
+
end
|
234
|
+
|
235
|
+
# to_body is an alias to to_hash (backward compatibility)
|
236
|
+
# @return [Hash] Returns the object in the form of hash
|
237
|
+
def to_body
|
238
|
+
to_hash
|
239
|
+
end
|
240
|
+
|
241
|
+
# Returns the object in the form of hash
|
242
|
+
# @return [Hash] Returns the object in the form of hash
|
243
|
+
def to_hash
|
244
|
+
hash = {}
|
245
|
+
self.class.attribute_map.each_pair do |attr, param|
|
246
|
+
value = self.send(attr)
|
247
|
+
if value.nil?
|
248
|
+
is_nullable = self.class.openapi_nullable.include?(attr)
|
249
|
+
next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}"))
|
250
|
+
end
|
251
|
+
|
252
|
+
hash[param] = _to_hash(value)
|
253
|
+
end
|
254
|
+
hash
|
255
|
+
end
|
256
|
+
|
257
|
+
# Outputs non-array value in the form of hash
|
258
|
+
# For object, use to_hash. Otherwise, just return the value
|
259
|
+
# @param [Object] value Any valid value
|
260
|
+
# @return [Hash] Returns the value in the form of hash
|
261
|
+
def _to_hash(value)
|
262
|
+
if value.is_a?(Array)
|
263
|
+
value.compact.map { |v| _to_hash(v) }
|
264
|
+
elsif value.is_a?(Hash)
|
265
|
+
{}.tap do |hash|
|
266
|
+
value.each { |k, v| hash[k] = _to_hash(v) }
|
267
|
+
end
|
268
|
+
elsif value.respond_to? :to_hash
|
269
|
+
value.to_hash
|
270
|
+
else
|
271
|
+
value
|
272
|
+
end
|
273
|
+
end
|
274
|
+
|
275
|
+
end
|
276
|
+
|
277
|
+
end
|