composio 0.1.0 → 0.1.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Gemfile.lock +11 -13
- data/README.md +5 -611
- data/lib/composio/api/actions_api.rb +52 -634
- data/lib/composio/api/auth_api.rb +0 -257
- data/lib/composio/api/integrations_api.rb +8 -113
- data/lib/composio/api/triggers_api.rb +0 -197
- data/lib/composio/models/action_details.rb +18 -4
- data/lib/composio/models/action_details_minimal.rb +18 -4
- data/lib/composio/models/initiate_connection_response.rb +13 -4
- data/lib/composio/version.rb +1 -1
- data/lib/composio.rb +0 -9
- data/spec/api/actions_api_spec.rb +1 -77
- data/spec/api/auth_api_spec.rb +0 -33
- data/spec/api/integrations_api_spec.rb +2 -14
- data/spec/api/triggers_api_spec.rb +0 -25
- data/spec/models/action_details_minimal_spec.rb +6 -0
- data/spec/models/action_details_spec.rb +6 -0
- data/spec/models/initiate_connection_response_spec.rb +6 -0
- data/spec/simple_test_spec.rb +8 -0
- metadata +107 -116
- data/lib/composio/api/cli_api.rb +0 -266
- data/lib/composio/api/metadata_api.rb +0 -180
- data/lib/composio/api/team_api.rb +0 -188
- data/spec/api/cli_api_spec.rb +0 -63
- data/spec/api/metadata_api_spec.rb +0 -50
- data/spec/api/team_api_spec.rb +0 -50
@@ -33,6 +33,8 @@ module Composio
|
|
33
33
|
|
34
34
|
attr_accessor :name
|
35
35
|
|
36
|
+
attr_accessor :deprecated
|
37
|
+
|
36
38
|
# Attribute mapping from ruby-style variable name to JSON key.
|
37
39
|
def self.attribute_map
|
38
40
|
{
|
@@ -46,7 +48,8 @@ module Composio
|
|
46
48
|
:'display_name' => :'displayName',
|
47
49
|
:'enabled' => :'enabled',
|
48
50
|
:'logo' => :'logo',
|
49
|
-
:'name' => :'name'
|
51
|
+
:'name' => :'name',
|
52
|
+
:'deprecated' => :'deprecated'
|
50
53
|
}
|
51
54
|
end
|
52
55
|
|
@@ -68,7 +71,8 @@ module Composio
|
|
68
71
|
:'display_name' => :'String',
|
69
72
|
:'enabled' => :'Boolean',
|
70
73
|
:'logo' => :'String',
|
71
|
-
:'name' => :'String'
|
74
|
+
:'name' => :'String',
|
75
|
+
:'deprecated' => :'Boolean'
|
72
76
|
}
|
73
77
|
end
|
74
78
|
|
@@ -138,6 +142,10 @@ module Composio
|
|
138
142
|
if attributes.key?(:'name')
|
139
143
|
self.name = attributes[:'name']
|
140
144
|
end
|
145
|
+
|
146
|
+
if attributes.key?(:'deprecated')
|
147
|
+
self.deprecated = attributes[:'deprecated']
|
148
|
+
end
|
141
149
|
end
|
142
150
|
|
143
151
|
# Show invalid properties with the reasons. Usually used together with valid?
|
@@ -184,6 +192,10 @@ module Composio
|
|
184
192
|
invalid_properties.push('invalid value for "name", name cannot be nil.')
|
185
193
|
end
|
186
194
|
|
195
|
+
if @deprecated.nil?
|
196
|
+
invalid_properties.push('invalid value for "deprecated", deprecated cannot be nil.')
|
197
|
+
end
|
198
|
+
|
187
199
|
invalid_properties
|
188
200
|
end
|
189
201
|
|
@@ -200,6 +212,7 @@ module Composio
|
|
200
212
|
return false if @enabled.nil?
|
201
213
|
return false if @logo.nil?
|
202
214
|
return false if @name.nil?
|
215
|
+
return false if @deprecated.nil?
|
203
216
|
true
|
204
217
|
end
|
205
218
|
|
@@ -218,7 +231,8 @@ module Composio
|
|
218
231
|
display_name == o.display_name &&
|
219
232
|
enabled == o.enabled &&
|
220
233
|
logo == o.logo &&
|
221
|
-
name == o.name
|
234
|
+
name == o.name &&
|
235
|
+
deprecated == o.deprecated
|
222
236
|
end
|
223
237
|
|
224
238
|
# @see the `==` method
|
@@ -230,7 +244,7 @@ module Composio
|
|
230
244
|
# Calculates hash code according to all attributes.
|
231
245
|
# @return [Integer] Hash code
|
232
246
|
def hash
|
233
|
-
[tags, description, parameters, response, app_id, app_key, app_name, display_name, enabled, logo, name].hash
|
247
|
+
[tags, description, parameters, response, app_id, app_key, app_name, display_name, enabled, logo, name, deprecated].hash
|
234
248
|
end
|
235
249
|
|
236
250
|
# Builds the object from hash
|
@@ -29,6 +29,8 @@ module Composio
|
|
29
29
|
|
30
30
|
attr_accessor :name
|
31
31
|
|
32
|
+
attr_accessor :deprecated
|
33
|
+
|
32
34
|
# Attribute mapping from ruby-style variable name to JSON key.
|
33
35
|
def self.attribute_map
|
34
36
|
{
|
@@ -40,7 +42,8 @@ module Composio
|
|
40
42
|
:'display_name' => :'displayName',
|
41
43
|
:'enabled' => :'enabled',
|
42
44
|
:'logo' => :'logo',
|
43
|
-
:'name' => :'name'
|
45
|
+
:'name' => :'name',
|
46
|
+
:'deprecated' => :'deprecated'
|
44
47
|
}
|
45
48
|
end
|
46
49
|
|
@@ -60,7 +63,8 @@ module Composio
|
|
60
63
|
:'display_name' => :'String',
|
61
64
|
:'enabled' => :'Boolean',
|
62
65
|
:'logo' => :'String',
|
63
|
-
:'name' => :'String'
|
66
|
+
:'name' => :'String',
|
67
|
+
:'deprecated' => :'Boolean'
|
64
68
|
}
|
65
69
|
end
|
66
70
|
|
@@ -122,6 +126,10 @@ module Composio
|
|
122
126
|
if attributes.key?(:'name')
|
123
127
|
self.name = attributes[:'name']
|
124
128
|
end
|
129
|
+
|
130
|
+
if attributes.key?(:'deprecated')
|
131
|
+
self.deprecated = attributes[:'deprecated']
|
132
|
+
end
|
125
133
|
end
|
126
134
|
|
127
135
|
# Show invalid properties with the reasons. Usually used together with valid?
|
@@ -160,6 +168,10 @@ module Composio
|
|
160
168
|
invalid_properties.push('invalid value for "name", name cannot be nil.')
|
161
169
|
end
|
162
170
|
|
171
|
+
if @deprecated.nil?
|
172
|
+
invalid_properties.push('invalid value for "deprecated", deprecated cannot be nil.')
|
173
|
+
end
|
174
|
+
|
163
175
|
invalid_properties
|
164
176
|
end
|
165
177
|
|
@@ -174,6 +186,7 @@ module Composio
|
|
174
186
|
return false if @enabled.nil?
|
175
187
|
return false if @logo.nil?
|
176
188
|
return false if @name.nil?
|
189
|
+
return false if @deprecated.nil?
|
177
190
|
true
|
178
191
|
end
|
179
192
|
|
@@ -190,7 +203,8 @@ module Composio
|
|
190
203
|
display_name == o.display_name &&
|
191
204
|
enabled == o.enabled &&
|
192
205
|
logo == o.logo &&
|
193
|
-
name == o.name
|
206
|
+
name == o.name &&
|
207
|
+
deprecated == o.deprecated
|
194
208
|
end
|
195
209
|
|
196
210
|
# @see the `==` method
|
@@ -202,7 +216,7 @@ module Composio
|
|
202
216
|
# Calculates hash code according to all attributes.
|
203
217
|
# @return [Integer] Hash code
|
204
218
|
def hash
|
205
|
-
[tags, description, app_id, app_key, app_name, display_name, enabled, logo, name].hash
|
219
|
+
[tags, description, app_id, app_key, app_name, display_name, enabled, logo, name, deprecated].hash
|
206
220
|
end
|
207
221
|
|
208
222
|
# Builds the object from hash
|
@@ -15,11 +15,14 @@ module Composio
|
|
15
15
|
|
16
16
|
attr_accessor :connected_account_id
|
17
17
|
|
18
|
+
attr_accessor :redirect_url
|
19
|
+
|
18
20
|
# Attribute mapping from ruby-style variable name to JSON key.
|
19
21
|
def self.attribute_map
|
20
22
|
{
|
21
23
|
:'connection_status' => :'connectionStatus',
|
22
|
-
:'connected_account_id' => :'connectedAccountId'
|
24
|
+
:'connected_account_id' => :'connectedAccountId',
|
25
|
+
:'redirect_url' => :'redirectUrl'
|
23
26
|
}
|
24
27
|
end
|
25
28
|
|
@@ -32,7 +35,8 @@ module Composio
|
|
32
35
|
def self.openapi_types
|
33
36
|
{
|
34
37
|
:'connection_status' => :'String',
|
35
|
-
:'connected_account_id' => :'String'
|
38
|
+
:'connected_account_id' => :'String',
|
39
|
+
:'redirect_url' => :'String'
|
36
40
|
}
|
37
41
|
end
|
38
42
|
|
@@ -64,6 +68,10 @@ module Composio
|
|
64
68
|
if attributes.key?(:'connected_account_id')
|
65
69
|
self.connected_account_id = attributes[:'connected_account_id']
|
66
70
|
end
|
71
|
+
|
72
|
+
if attributes.key?(:'redirect_url')
|
73
|
+
self.redirect_url = attributes[:'redirect_url']
|
74
|
+
end
|
67
75
|
end
|
68
76
|
|
69
77
|
# Show invalid properties with the reasons. Usually used together with valid?
|
@@ -133,7 +141,8 @@ module Composio
|
|
133
141
|
return true if self.equal?(o)
|
134
142
|
self.class == o.class &&
|
135
143
|
connection_status == o.connection_status &&
|
136
|
-
connected_account_id == o.connected_account_id
|
144
|
+
connected_account_id == o.connected_account_id &&
|
145
|
+
redirect_url == o.redirect_url
|
137
146
|
end
|
138
147
|
|
139
148
|
# @see the `==` method
|
@@ -145,7 +154,7 @@ module Composio
|
|
145
154
|
# Calculates hash code according to all attributes.
|
146
155
|
# @return [Integer] Hash code
|
147
156
|
def hash
|
148
|
-
[connection_status, connected_account_id].hash
|
157
|
+
[connection_status, connected_account_id, redirect_url].hash
|
149
158
|
end
|
150
159
|
|
151
160
|
# Builds the object from hash
|
data/lib/composio/version.rb
CHANGED
data/lib/composio.rb
CHANGED
@@ -136,12 +136,9 @@ require 'composio/api/api_keys_api'
|
|
136
136
|
require 'composio/api/actions_api'
|
137
137
|
require 'composio/api/apps_api'
|
138
138
|
require 'composio/api/auth_api'
|
139
|
-
require 'composio/api/cli_api'
|
140
139
|
require 'composio/api/connections_api'
|
141
140
|
require 'composio/api/integrations_api'
|
142
141
|
require 'composio/api/logs_api'
|
143
|
-
require 'composio/api/metadata_api'
|
144
|
-
require 'composio/api/team_api'
|
145
142
|
require 'composio/api/triggers_api'
|
146
143
|
|
147
144
|
module Composio
|
@@ -188,12 +185,9 @@ module Composio
|
|
188
185
|
attr_reader :actions
|
189
186
|
attr_reader :apps
|
190
187
|
attr_reader :auth
|
191
|
-
attr_reader :cli
|
192
188
|
attr_reader :connections
|
193
189
|
attr_reader :integrations
|
194
190
|
attr_reader :logs
|
195
|
-
attr_reader :metadata
|
196
|
-
attr_reader :team
|
197
191
|
attr_reader :triggers
|
198
192
|
|
199
193
|
def initialize(config = Configuration.default)
|
@@ -202,12 +196,9 @@ module Composio
|
|
202
196
|
@actions = Composio::ActionsApi.new(@api_client)
|
203
197
|
@apps = Composio::AppsApi.new(@api_client)
|
204
198
|
@auth = Composio::AuthApi.new(@api_client)
|
205
|
-
@cli = Composio::CLIApi.new(@api_client)
|
206
199
|
@connections = Composio::ConnectionsApi.new(@api_client)
|
207
200
|
@integrations = Composio::IntegrationsApi.new(@api_client)
|
208
201
|
@logs = Composio::LogsApi.new(@api_client)
|
209
|
-
@metadata = Composio::MetadataApi.new(@api_client)
|
210
|
-
@team = Composio::TeamApi.new(@api_client)
|
211
202
|
@triggers = Composio::TriggersApi.new(@api_client)
|
212
203
|
end
|
213
204
|
end
|
@@ -28,24 +28,12 @@ describe 'ActionsApi' do
|
|
28
28
|
|
29
29
|
# unit tests for execute
|
30
30
|
# Execute action
|
31
|
-
# @param action_id
|
32
|
-
# @param [Hash] opts the optional parameters
|
33
|
-
# @option opts [ActionExecutionReqDTO] :action_execution_req_dto ActionExecutionReqDTO
|
34
|
-
# @return [ActionExecutionResDto]
|
35
|
-
describe 'execute test' do
|
36
|
-
it 'should work' do
|
37
|
-
# assertion here. ref: https://www.relishapp.com/rspec/rspec-expectations/docs/built-in-matchers
|
38
|
-
end
|
39
|
-
end
|
40
|
-
|
41
|
-
# unit tests for execute_0
|
42
|
-
# Execute action
|
43
31
|
# Execute an action. Support both connected account and no auth auth.
|
44
32
|
# @param action_id
|
45
33
|
# @param [Hash] opts the optional parameters
|
46
34
|
# @option opts [ActionExecutionReqDTO] :action_execution_req_dto ActionExecutionReqDTO
|
47
35
|
# @return [ActionExecutionResDto]
|
48
|
-
describe '
|
36
|
+
describe 'execute test' do
|
49
37
|
it 'should work' do
|
50
38
|
# assertion here. ref: https://www.relishapp.com/rspec/rspec-expectations/docs/built-in-matchers
|
51
39
|
end
|
@@ -64,29 +52,6 @@ describe 'ActionsApi' do
|
|
64
52
|
end
|
65
53
|
end
|
66
54
|
|
67
|
-
# unit tests for execute_proxy
|
68
|
-
# Execute action proxy
|
69
|
-
# @param endpoint
|
70
|
-
# @param connected_account_id
|
71
|
-
# @param [Hash] opts the optional parameters
|
72
|
-
# @return [ExecuteActionResDTO]
|
73
|
-
describe 'execute_proxy test' do
|
74
|
-
it 'should work' do
|
75
|
-
# assertion here. ref: https://www.relishapp.com/rspec/rspec-expectations/docs/built-in-matchers
|
76
|
-
end
|
77
|
-
end
|
78
|
-
|
79
|
-
# unit tests for get
|
80
|
-
# Get action
|
81
|
-
# @param action_id
|
82
|
-
# @param [Hash] opts the optional parameters
|
83
|
-
# @return [ActionDetails]
|
84
|
-
describe 'get test' do
|
85
|
-
it 'should work' do
|
86
|
-
# assertion here. ref: https://www.relishapp.com/rspec/rspec-expectations/docs/built-in-matchers
|
87
|
-
end
|
88
|
-
end
|
89
|
-
|
90
55
|
# unit tests for get_action_by_id
|
91
56
|
# Get action
|
92
57
|
# Get action details
|
@@ -120,45 +85,4 @@ describe 'ActionsApi' do
|
|
120
85
|
end
|
121
86
|
end
|
122
87
|
|
123
|
-
# unit tests for list
|
124
|
-
# List actions
|
125
|
-
# @param [Hash] opts the optional parameters
|
126
|
-
# @option opts [String] :app_names
|
127
|
-
# @option opts [String] :use_case
|
128
|
-
# @option opts [Boolean] :show_enabled_only
|
129
|
-
# @option opts [Float] :limit
|
130
|
-
# @option opts [String] :apps
|
131
|
-
# @option opts [String] :actions
|
132
|
-
# @option opts [String] :tags
|
133
|
-
# @option opts [Float] :usecase_limit
|
134
|
-
# @option opts [Boolean] :filter_important_actions
|
135
|
-
# @option opts [Boolean] :show_all
|
136
|
-
# @return [ActionsListResponseDTO]
|
137
|
-
describe 'list test' do
|
138
|
-
it 'should work' do
|
139
|
-
# assertion here. ref: https://www.relishapp.com/rspec/rspec-expectations/docs/built-in-matchers
|
140
|
-
end
|
141
|
-
end
|
142
|
-
|
143
|
-
# unit tests for list_0
|
144
|
-
# List actions
|
145
|
-
# Retrieve a list of all actions based on query parameters.
|
146
|
-
# @param [Hash] opts the optional parameters
|
147
|
-
# @option opts [String] :app_names
|
148
|
-
# @option opts [String] :use_case
|
149
|
-
# @option opts [Boolean] :show_enabled_only
|
150
|
-
# @option opts [Float] :limit
|
151
|
-
# @option opts [String] :apps
|
152
|
-
# @option opts [String] :actions
|
153
|
-
# @option opts [String] :tags
|
154
|
-
# @option opts [Float] :usecase_limit
|
155
|
-
# @option opts [Boolean] :filter_important_actions
|
156
|
-
# @option opts [Boolean] :show_all
|
157
|
-
# @return [ActionsListResponseDTO]
|
158
|
-
describe 'list_0 test' do
|
159
|
-
it 'should work' do
|
160
|
-
# assertion here. ref: https://www.relishapp.com/rspec/rspec-expectations/docs/built-in-matchers
|
161
|
-
end
|
162
|
-
end
|
163
|
-
|
164
88
|
end
|
data/spec/api/auth_api_spec.rb
CHANGED
@@ -37,37 +37,4 @@ describe 'AuthApi' do
|
|
37
37
|
end
|
38
38
|
end
|
39
39
|
|
40
|
-
# unit tests for send_magic_link
|
41
|
-
# Send magic link
|
42
|
-
# @param [Hash] opts the optional parameters
|
43
|
-
# @option opts [MagicLinkReqDTO] :magic_link_req_dto MagicLinkReqDTO
|
44
|
-
# @return [MagicLinkResDTO]
|
45
|
-
describe 'send_magic_link test' do
|
46
|
-
it 'should work' do
|
47
|
-
# assertion here. ref: https://www.relishapp.com/rspec/rspec-expectations/docs/built-in-matchers
|
48
|
-
end
|
49
|
-
end
|
50
|
-
|
51
|
-
# unit tests for user_logout
|
52
|
-
# Logout API
|
53
|
-
# Logout the user and clear the server side session
|
54
|
-
# @param [Hash] opts the optional parameters
|
55
|
-
# @return [LogoutResDTO]
|
56
|
-
describe 'user_logout test' do
|
57
|
-
it 'should work' do
|
58
|
-
# assertion here. ref: https://www.relishapp.com/rspec/rspec-expectations/docs/built-in-matchers
|
59
|
-
end
|
60
|
-
end
|
61
|
-
|
62
|
-
# unit tests for verify_magic_link
|
63
|
-
# Verify magic link
|
64
|
-
# @param [Hash] opts the optional parameters
|
65
|
-
# @option opts [VerifyMagicLinkReqDTO] :verify_magic_link_req_dto VerifyMagicLinkReqDTO
|
66
|
-
# @return [VerifyMagicLinkResDTO]
|
67
|
-
describe 'verify_magic_link test' do
|
68
|
-
it 'should work' do
|
69
|
-
# assertion here. ref: https://www.relishapp.com/rspec/rspec-expectations/docs/built-in-matchers
|
70
|
-
end
|
71
|
-
end
|
72
|
-
|
73
40
|
end
|
@@ -60,7 +60,7 @@ describe 'IntegrationsApi' do
|
|
60
60
|
end
|
61
61
|
|
62
62
|
# unit tests for list_global_connectors
|
63
|
-
# List
|
63
|
+
# List all connectors
|
64
64
|
# @param [Hash] opts the optional parameters
|
65
65
|
# @return [GetConnectorListResDTO]
|
66
66
|
describe 'list_global_connectors test' do
|
@@ -70,7 +70,7 @@ describe 'IntegrationsApi' do
|
|
70
70
|
end
|
71
71
|
|
72
72
|
# unit tests for update_integration
|
73
|
-
#
|
73
|
+
# Modify connector
|
74
74
|
# @param integration_id
|
75
75
|
# @param [Hash] opts the optional parameters
|
76
76
|
# @option opts [PatchConnectorReqDTO] :patch_connector_req_dto PatchConnectorReqDTO
|
@@ -81,16 +81,4 @@ describe 'IntegrationsApi' do
|
|
81
81
|
end
|
82
82
|
end
|
83
83
|
|
84
|
-
# unit tests for update_status
|
85
|
-
# Patch post connector
|
86
|
-
# @param integration_id
|
87
|
-
# @param [Hash] opts the optional parameters
|
88
|
-
# @option opts [PatchConnectorReqDTO] :patch_connector_req_dto PatchConnectorReqDTO
|
89
|
-
# @return [PatchConnectorResDTO]
|
90
|
-
describe 'update_status test' do
|
91
|
-
it 'should work' do
|
92
|
-
# assertion here. ref: https://www.relishapp.com/rspec/rspec-expectations/docs/built-in-matchers
|
93
|
-
end
|
94
|
-
end
|
95
|
-
|
96
84
|
end
|
@@ -82,18 +82,6 @@ describe 'TriggersApi' do
|
|
82
82
|
end
|
83
83
|
end
|
84
84
|
|
85
|
-
# unit tests for get_by_id
|
86
|
-
# Get trigger
|
87
|
-
# Retrieves a specific trigger by its ID.
|
88
|
-
# @param trigger_id
|
89
|
-
# @param [Hash] opts the optional parameters
|
90
|
-
# @return [GetTriggerResponseDTO]
|
91
|
-
describe 'get_by_id test' do
|
92
|
-
it 'should work' do
|
93
|
-
# assertion here. ref: https://www.relishapp.com/rspec/rspec-expectations/docs/built-in-matchers
|
94
|
-
end
|
95
|
-
end
|
96
|
-
|
97
85
|
# unit tests for get_callback_url
|
98
86
|
# Get webhook url
|
99
87
|
# Retrieves the universal callback URL set for the client.
|
@@ -172,17 +160,4 @@ describe 'TriggersApi' do
|
|
172
160
|
end
|
173
161
|
end
|
174
162
|
|
175
|
-
# unit tests for switch_post_instance_status
|
176
|
-
# Switch post trigger instance status
|
177
|
-
# Switches the status of a trigger instance.
|
178
|
-
# @param trigger_id
|
179
|
-
# @param [Hash] opts the optional parameters
|
180
|
-
# @option opts [SwitchTriggerStatusBodyDTO] :switch_trigger_status_body_dto SwitchTriggerStatusBodyDTO
|
181
|
-
# @return [TriggerResponseDTO]
|
182
|
-
describe 'switch_post_instance_status test' do
|
183
|
-
it 'should work' do
|
184
|
-
# assertion here. ref: https://www.relishapp.com/rspec/rspec-expectations/docs/built-in-matchers
|
185
|
-
end
|
186
|
-
end
|
187
|
-
|
188
163
|
end
|
@@ -31,4 +31,10 @@ describe Composio::InitiateConnectionResponse do
|
|
31
31
|
end
|
32
32
|
end
|
33
33
|
|
34
|
+
describe 'test attribute "redirect_url"' do
|
35
|
+
it 'should work' do
|
36
|
+
# assertion here. ref: https://www.relishapp.com/rspec/rspec-expectations/docs/built-in-matchers
|
37
|
+
end
|
38
|
+
end
|
39
|
+
|
34
40
|
end
|
data/spec/simple_test_spec.rb
CHANGED
@@ -32,6 +32,14 @@ describe 'GettingStarted' do
|
|
32
32
|
expect(result).to_not be_nil
|
33
33
|
end
|
34
34
|
|
35
|
+
it 'api_keys.remove' do
|
36
|
+
configuration = Composio::Configuration.new
|
37
|
+
configuration.api_key = 'YOUR API KEY'
|
38
|
+
configuration.host = 'http://127.0.0.1:4010'
|
39
|
+
composio = Composio::Client.new(configuration)
|
40
|
+
result = composio.api_keys.remove(id: "test")
|
41
|
+
end
|
42
|
+
|
35
43
|
it 'actions.execute' do
|
36
44
|
configuration = Composio::Configuration.new
|
37
45
|
configuration.api_key = 'YOUR API KEY'
|