morpheus-cli 5.3.0.3 → 5.3.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/Dockerfile +1 -1
- data/README.md +1 -3
- data/lib/morpheus/api/api_client.rb +48 -14
- data/lib/morpheus/api/certificate_types_interface.rb +14 -0
- data/lib/morpheus/api/certificates_interface.rb +9 -0
- data/lib/morpheus/api/integration_types_interface.rb +14 -0
- data/lib/morpheus/api/integrations_interface.rb +7 -22
- data/lib/morpheus/api/network_services_interface.rb +14 -0
- data/lib/morpheus/api/read_interface.rb +23 -0
- data/lib/morpheus/api/rest_interface.rb +12 -10
- data/lib/morpheus/api/roles_interface.rb +7 -0
- data/lib/morpheus/api/servers_interface.rb +7 -0
- data/lib/morpheus/api/user_settings_interface.rb +38 -18
- data/lib/morpheus/api/vdi_allocations_interface.rb +9 -0
- data/lib/morpheus/api/vdi_apps_interface.rb +9 -0
- data/lib/morpheus/api/vdi_gateways_interface.rb +9 -0
- data/lib/morpheus/api/vdi_interface.rb +28 -0
- data/lib/morpheus/api/vdi_pools_interface.rb +19 -0
- data/lib/morpheus/cli.rb +9 -2
- data/lib/morpheus/cli/apps.rb +59 -75
- data/lib/morpheus/cli/catalog_item_types_command.rb +13 -13
- data/lib/morpheus/cli/certificates_command.rb +575 -0
- data/lib/morpheus/cli/cli_command.rb +61 -6
- data/lib/morpheus/cli/clouds.rb +1 -0
- data/lib/morpheus/cli/clusters.rb +1 -1
- data/lib/morpheus/cli/commands/standard/man_command.rb +4 -5
- data/lib/morpheus/cli/hosts.rb +245 -224
- data/lib/morpheus/cli/instances.rb +150 -167
- data/lib/morpheus/cli/integrations_command.rb +588 -41
- data/lib/morpheus/cli/login.rb +7 -0
- data/lib/morpheus/cli/mixins/print_helper.rb +33 -18
- data/lib/morpheus/cli/mixins/provisioning_helper.rb +3 -3
- data/lib/morpheus/cli/mixins/vdi_helper.rb +246 -0
- data/lib/morpheus/cli/network_routers_command.rb +22 -9
- data/lib/morpheus/cli/networks_command.rb +2 -2
- data/lib/morpheus/cli/option_types.rb +34 -33
- data/lib/morpheus/cli/remote.rb +1 -1
- data/lib/morpheus/cli/reports_command.rb +4 -1
- data/lib/morpheus/cli/roles.rb +215 -55
- data/lib/morpheus/cli/subnets_command.rb +11 -2
- data/lib/morpheus/cli/user_settings_command.rb +268 -57
- data/lib/morpheus/cli/vdi_allocations_command.rb +159 -0
- data/lib/morpheus/cli/vdi_apps_command.rb +317 -0
- data/lib/morpheus/cli/vdi_command.rb +359 -0
- data/lib/morpheus/cli/vdi_gateways_command.rb +290 -0
- data/lib/morpheus/cli/vdi_pools_command.rb +571 -0
- data/lib/morpheus/cli/version.rb +1 -1
- data/lib/morpheus/rest_client.rb +30 -0
- data/lib/morpheus/terminal.rb +15 -7
- metadata +18 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 5ef633b92f3026067d66ea71995c2d7d2655579b07a200f083dccead54b371bb
|
4
|
+
data.tar.gz: 7fd5dedc5f5aa6a9c9a071f47639e9fa3f9a86a2a777e737d1a8581dfb195e86
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 5e23c9f9a34bf2efa4f3d5c4299045fa800b04789abec9553daa134e4db271e274840b50627ac6131a1f4f38e14bda05e630dd4d47bb36dce0d001ef2bbed368
|
7
|
+
data.tar.gz: 3f55908e5d7f440a041de2ad74c8e0019123b04ed32fecaa6e3dfb14ae41e9b86c7b7a298e060d0c2ffb74db82349b80be08ac4e0a750453bed4ca66dbd640a9
|
data/Dockerfile
CHANGED
data/README.md
CHANGED
@@ -23,8 +23,6 @@ And then execute:
|
|
23
23
|
|
24
24
|
$ bundle install
|
25
25
|
|
26
|
-
|
27
|
-
|
28
26
|
## Usage
|
29
27
|
|
30
28
|
### morpheus command
|
@@ -32,7 +30,7 @@ And then execute:
|
|
32
30
|
This gem installs the [morpheus](https://github.com/gomorpheus/morpheus-cli/wiki/CLI-Manual) binary for running commands in your terminal shell.
|
33
31
|
|
34
32
|
```sh
|
35
|
-
morpheus remote add
|
33
|
+
morpheus remote add
|
36
34
|
morpheus instances list
|
37
35
|
```
|
38
36
|
|
@@ -146,6 +146,7 @@ class Morpheus::APIClient
|
|
146
146
|
# :headers - Extra headers to add. This expects a Hash like {'Content-Type' => 'application/json'}.
|
147
147
|
# :timeout - A custom timeout in seconds for api requests. The default is 30. todo: separate timeout options
|
148
148
|
def execute(opts, options={})
|
149
|
+
# Morpheus::Logging::DarkPrinter.puts "Morpheus::RestClient.execute(#{opts})" if Morpheus::Logging.debug?
|
149
150
|
# ok, always prepend @base_url, let the caller specify it exactly or leave it off.
|
150
151
|
# this allows the Interface definition be lazy and not specify the base_url in every call to execute()
|
151
152
|
# it will be used though...
|
@@ -174,7 +175,7 @@ class Morpheus::APIClient
|
|
174
175
|
# apply default headers
|
175
176
|
opts[:headers] ||= {}
|
176
177
|
|
177
|
-
is_multipart = (opts[:payload].is_a?(Hash) && opts[:payload][:multipart])
|
178
|
+
is_multipart = (opts[:payload].is_a?(Hash) && opts[:payload][:multipart] == true)
|
178
179
|
|
179
180
|
# Authorization: apply our access token
|
180
181
|
if authorization_required?
|
@@ -187,15 +188,20 @@ class Morpheus::APIClient
|
|
187
188
|
end
|
188
189
|
end
|
189
190
|
|
190
|
-
# Content-Type
|
191
|
-
|
192
|
-
|
193
|
-
|
191
|
+
# POST and PUT requests default Content-Type is application/json
|
192
|
+
# set Content-Type or pass :form_data => true if you want application/x-www-form-urlencoded
|
193
|
+
# or use opts[:payload][:multipart] = true if you need multipart/form-data
|
194
|
+
if opts[:method] == :post || opts[:method] == :put
|
195
|
+
if opts[:headers]['Content-Type'].nil? && opts[:payload] && is_multipart != true && opts[:form_data] != true
|
196
|
+
opts[:headers]['Content-Type'] = (default_content_type || 'application/json')
|
197
|
+
end
|
194
198
|
|
195
|
-
|
196
|
-
|
197
|
-
|
198
|
-
|
199
|
+
# Auto encode payload as JSON, just to be nice
|
200
|
+
if opts[:headers]['Content-Type'] == 'application/json' && !opts[:payload].is_a?(String)
|
201
|
+
opts[:payload] = opts[:payload].to_json
|
202
|
+
end
|
203
|
+
|
204
|
+
end
|
199
205
|
|
200
206
|
# always use custom timeout eg. from --timeout option
|
201
207
|
# or use default_timeout for GET requests only.
|
@@ -431,7 +437,11 @@ class Morpheus::APIClient
|
|
431
437
|
end
|
432
438
|
|
433
439
|
def integrations
|
434
|
-
Morpheus::IntegrationsInterface.new(
|
440
|
+
Morpheus::IntegrationsInterface.new(common_interface_options).setopts(@options)
|
441
|
+
end
|
442
|
+
|
443
|
+
def integration_types
|
444
|
+
Morpheus::IntegrationTypesInterface.new(common_interface_options).setopts(@options)
|
435
445
|
end
|
436
446
|
|
437
447
|
def jobs
|
@@ -534,12 +544,16 @@ class Morpheus::APIClient
|
|
534
544
|
Morpheus::KeyPairsInterface.new(@access_token, @refresh_token, @expires_at, @base_url).setopts(@options)
|
535
545
|
end
|
536
546
|
|
537
|
-
def
|
538
|
-
Morpheus::
|
547
|
+
def certificates
|
548
|
+
Morpheus::CertificatesInterface.new(common_interface_options).setopts(@options)
|
539
549
|
end
|
540
550
|
|
541
|
-
def
|
542
|
-
Morpheus::
|
551
|
+
def certificate_types
|
552
|
+
Morpheus::CertificateTypesInterface.new(common_interface_options).setopts(@options)
|
553
|
+
end
|
554
|
+
|
555
|
+
def license
|
556
|
+
Morpheus::LicenseInterface.new(@access_token, @refresh_token, @expires_at, @base_url).setopts(@options)
|
543
557
|
end
|
544
558
|
|
545
559
|
def option_types
|
@@ -787,6 +801,26 @@ class Morpheus::APIClient
|
|
787
801
|
def billing
|
788
802
|
Morpheus::BillingInterface.new(common_interface_options).setopts(@options)
|
789
803
|
end
|
804
|
+
|
805
|
+
def vdi
|
806
|
+
Morpheus::VdiInterface.new(common_interface_options).setopts(@options)
|
807
|
+
end
|
808
|
+
|
809
|
+
def vdi_pools
|
810
|
+
Morpheus::VdiPoolsInterface.new(common_interface_options).setopts(@options)
|
811
|
+
end
|
812
|
+
|
813
|
+
def vdi_allocations
|
814
|
+
Morpheus::VdiAllocationsInterface.new(common_interface_options).setopts(@options)
|
815
|
+
end
|
816
|
+
|
817
|
+
def vdi_apps
|
818
|
+
Morpheus::VdiAppsInterface.new(common_interface_options).setopts(@options)
|
819
|
+
end
|
820
|
+
|
821
|
+
def vdi_gateways
|
822
|
+
Morpheus::VdiGatewaysInterface.new(common_interface_options).setopts(@options)
|
823
|
+
end
|
790
824
|
|
791
825
|
# add new interfaces here
|
792
826
|
|
@@ -0,0 +1,14 @@
|
|
1
|
+
require 'morpheus/api/rest_interface'
|
2
|
+
|
3
|
+
class Morpheus::CertificateTypesInterface < Morpheus::RestInterface
|
4
|
+
|
5
|
+
def base_path
|
6
|
+
"/api/certificate-types"
|
7
|
+
end
|
8
|
+
|
9
|
+
def option_types(id, params={}, headers={})
|
10
|
+
validate_id!(id)
|
11
|
+
execute(method: :get, url: "#{base_path}/#{id}/option-types", params: params, headers: headers)
|
12
|
+
end
|
13
|
+
|
14
|
+
end
|
@@ -0,0 +1,14 @@
|
|
1
|
+
require 'morpheus/api/read_interface'
|
2
|
+
|
3
|
+
class Morpheus::IntegrationTypesInterface < Morpheus::ReadInterface
|
4
|
+
|
5
|
+
def base_path
|
6
|
+
"/api/integration-types"
|
7
|
+
end
|
8
|
+
|
9
|
+
def option_types(id, params={}, headers={})
|
10
|
+
validate_id!(id)
|
11
|
+
execute(method: :get, url: "#{base_path}/#{id}/option-types", params: params, headers: headers)
|
12
|
+
end
|
13
|
+
|
14
|
+
end
|
@@ -1,29 +1,14 @@
|
|
1
|
-
require 'morpheus/api/
|
1
|
+
require 'morpheus/api/rest_interface'
|
2
2
|
|
3
|
-
class Morpheus::IntegrationsInterface < Morpheus::
|
4
|
-
def initialize(access_token, refresh_token,expires_at = nil, base_url=nil, api='integrations')
|
5
|
-
@access_token = access_token
|
6
|
-
@refresh_token = refresh_token
|
7
|
-
@base_url = base_url
|
8
|
-
@api_url = "#{base_url}/api/#{api}"
|
9
|
-
@expires_at = expires_at
|
10
|
-
end
|
3
|
+
class Morpheus::IntegrationsInterface < Morpheus::RestInterface
|
11
4
|
|
12
|
-
def
|
13
|
-
|
14
|
-
headers = { params: params, authorization: "Bearer #{@access_token}" }
|
15
|
-
execute(method: :get, url: url, headers: headers)
|
5
|
+
def base_path
|
6
|
+
"/api/integrations"
|
16
7
|
end
|
17
8
|
|
18
|
-
def
|
19
|
-
|
20
|
-
|
21
|
-
execute(method: :get, url: url, headers: headers)
|
9
|
+
def refresh(id, params={}, payload={}, headers={})
|
10
|
+
validate_id!(id)
|
11
|
+
execute(method: :post, url: "#{base_path}/#{id}/refresh", params: params, payload: payload, headers: headers)
|
22
12
|
end
|
23
13
|
|
24
|
-
def update(payload, params={})
|
25
|
-
url = @api_url
|
26
|
-
headers = { params: params, :authorization => "Bearer #{@access_token}", 'Content-Type' => 'application/json' }
|
27
|
-
execute(method: :put, url: url, headers: headers, payload: payload.to_json)
|
28
|
-
end
|
29
14
|
end
|
@@ -23,6 +23,20 @@ class Morpheus::NetworkServicesInterface < Morpheus::APIClient
|
|
23
23
|
execute(opts)
|
24
24
|
end
|
25
25
|
|
26
|
+
def get(params={})
|
27
|
+
url = "#{@base_url}/api/networks/services"
|
28
|
+
headers = { params: {}, authorization: "Bearer #{@access_token}" }
|
29
|
+
|
30
|
+
if params.is_a?(Hash)
|
31
|
+
headers[:params].merge!(params)
|
32
|
+
elsif params.is_a?(Numeric)
|
33
|
+
url = "#{url}/#{params}"
|
34
|
+
elsif params.is_a?(String)
|
35
|
+
headers[:params]['name'] = params
|
36
|
+
end
|
37
|
+
execute(method: :get, url: url, headers: headers)
|
38
|
+
end
|
39
|
+
|
26
40
|
# def create(payload)
|
27
41
|
# url = "#{@base_url}/api/networks/services"
|
28
42
|
# headers = { :authorization => "Bearer #{@access_token}", 'Content-Type' => 'application/json' }
|
@@ -0,0 +1,23 @@
|
|
1
|
+
require 'morpheus/api/api_client'
|
2
|
+
|
3
|
+
# Interface class to be subclassed by interfaces that are read-only
|
4
|
+
# and only provide list() and get() methods, not full CRUD
|
5
|
+
# Subclasses must override the base_path method
|
6
|
+
class Morpheus::ReadInterface < Morpheus::APIClient
|
7
|
+
|
8
|
+
# subclasses should override in your interface
|
9
|
+
# Example: "/api/thing-types"
|
10
|
+
def base_path
|
11
|
+
raise "#{self.class} has not defined base_path!"
|
12
|
+
end
|
13
|
+
|
14
|
+
def list(params={}, headers={})
|
15
|
+
execute(method: :get, url: "#{base_path}", params: params, headers: headers)
|
16
|
+
end
|
17
|
+
|
18
|
+
def get(id, params={}, headers={})
|
19
|
+
validate_id!(id)
|
20
|
+
execute(method: :get, url: "#{base_path}/#{id}", params: params, headers: headers)
|
21
|
+
end
|
22
|
+
|
23
|
+
end
|
@@ -1,5 +1,7 @@
|
|
1
1
|
require 'morpheus/api/api_client'
|
2
2
|
|
3
|
+
# Interface class to be subclassed by interfaces that provide CRUD endpoints
|
4
|
+
# Subclasses must override the base_path method
|
3
5
|
class Morpheus::RestInterface < Morpheus::APIClient
|
4
6
|
|
5
7
|
# subclasses should override in your interface
|
@@ -8,27 +10,27 @@ class Morpheus::RestInterface < Morpheus::APIClient
|
|
8
10
|
raise "#{self.class} has not defined base_path!"
|
9
11
|
end
|
10
12
|
|
11
|
-
def list(params={})
|
12
|
-
execute(method: :get, url: "#{base_path}", params: params)
|
13
|
+
def list(params={}, headers={})
|
14
|
+
execute(method: :get, url: "#{base_path}", params: params, headers: headers)
|
13
15
|
end
|
14
16
|
|
15
|
-
def get(id, params={})
|
17
|
+
def get(id, params={}, headers={})
|
16
18
|
validate_id!(id)
|
17
|
-
execute(method: :get, url: "#{base_path}/#{id}", params: params)
|
19
|
+
execute(method: :get, url: "#{base_path}/#{id}", params: params, headers: headers)
|
18
20
|
end
|
19
21
|
|
20
|
-
def create(payload, params={})
|
21
|
-
execute(method: :post, url: "#{base_path}", params: params, payload: payload
|
22
|
+
def create(payload, params={}, headers={})
|
23
|
+
execute(method: :post, url: "#{base_path}", params: params, payload: payload, headers: headers)
|
22
24
|
end
|
23
25
|
|
24
|
-
def update(id, payload, params={})
|
26
|
+
def update(id, payload, params={}, headers={})
|
25
27
|
validate_id!(id)
|
26
|
-
execute(method: :put, url: "#{base_path}/#{id}", params: params, payload: payload
|
28
|
+
execute(method: :put, url: "#{base_path}/#{id}", params: params, payload: payload, headers: headers)
|
27
29
|
end
|
28
30
|
|
29
|
-
def destroy(id, params = {})
|
31
|
+
def destroy(id, params = {}, headers={})
|
30
32
|
validate_id!(id)
|
31
|
-
execute(method: :delete, url: "#{base_path}/#{id}", params: params)
|
33
|
+
execute(method: :delete, url: "#{base_path}/#{id}", params: params, headers: headers)
|
32
34
|
end
|
33
35
|
|
34
36
|
end
|
@@ -91,6 +91,13 @@ class Morpheus::RolesInterface < Morpheus::APIClient
|
|
91
91
|
execute(method: :put, url: url, headers: headers, payload: payload.to_json)
|
92
92
|
end
|
93
93
|
|
94
|
+
def update_vdi_pool(account_id, id, options)
|
95
|
+
url = build_url(account_id, id) + "/update-vdi-pool"
|
96
|
+
headers = { :authorization => "Bearer #{@access_token}", 'Content-Type' => 'application/json' }
|
97
|
+
payload = options
|
98
|
+
execute(method: :put, url: url, headers: headers, payload: payload.to_json)
|
99
|
+
end
|
100
|
+
|
94
101
|
private
|
95
102
|
|
96
103
|
def build_url(account_id=nil, role_id=nil)
|
@@ -183,4 +183,11 @@ class Morpheus::ServersInterface < Morpheus::APIClient
|
|
183
183
|
execute(opts)
|
184
184
|
end
|
185
185
|
|
186
|
+
def software_sync(id, payload={}, params={})
|
187
|
+
url = "#{@base_url}/api/servers/#{id}/software/sync"
|
188
|
+
headers = { params: params, authorization: "Bearer #{@access_token}" }
|
189
|
+
opts = {method: :put, url: url, headers: headers}
|
190
|
+
execute(opts)
|
191
|
+
end
|
192
|
+
|
186
193
|
end
|
@@ -2,31 +2,29 @@ require 'morpheus/api/api_client'
|
|
2
2
|
|
3
3
|
class Morpheus::UserSettingsInterface < Morpheus::APIClient
|
4
4
|
|
5
|
-
def
|
6
|
-
|
7
|
-
headers = { :params => params, authorization: "Bearer #{@access_token}"}
|
8
|
-
opts = {method: :get, url: url, headers: headers}
|
9
|
-
execute(opts)
|
5
|
+
def base_path
|
6
|
+
"/api/user-settings"
|
10
7
|
end
|
11
8
|
|
12
|
-
def
|
13
|
-
url
|
14
|
-
headers = { :params => params, :authorization => "Bearer #{@access_token}", 'Content-Type' => 'application/json'}
|
15
|
-
opts = {method: :put, url: url, headers: headers, payload: payload.to_json}
|
16
|
-
execute(opts)
|
9
|
+
def get(params={}, headers={})
|
10
|
+
execute(method: :get, url: "#{base_path}", params: params, headers: headers)
|
17
11
|
end
|
18
12
|
|
19
|
-
|
13
|
+
def update(payload, params={}, headers={})
|
14
|
+
execute(method: :put, url: "#{base_path}", params: params, payload: payload, headers: headers)
|
15
|
+
end
|
16
|
+
|
17
|
+
# download file as attachment
|
20
18
|
def download_avatar(params, outfile)
|
21
|
-
url = "#{
|
19
|
+
url = "#{base_path}/avatar"
|
22
20
|
headers = { :params => params, :authorization => "Bearer #{@access_token}"}
|
23
21
|
opts = {method: :get, url: url, headers: headers, payload: payload}
|
24
22
|
execute(opts)
|
25
23
|
end
|
26
24
|
|
27
|
-
#
|
25
|
+
# multipart file upload
|
28
26
|
def update_avatar(avatar_file, params={})
|
29
|
-
url = "#{
|
27
|
+
url = "#{base_path}/avatar"
|
30
28
|
headers = { :params => params, :authorization => "Bearer #{@access_token}"}
|
31
29
|
payload = {}
|
32
30
|
#payload['user'] ||= {}
|
@@ -38,7 +36,29 @@ class Morpheus::UserSettingsInterface < Morpheus::APIClient
|
|
38
36
|
end
|
39
37
|
|
40
38
|
def remove_avatar(params={})
|
41
|
-
url = "#{
|
39
|
+
url = "#{base_path}/avatar"
|
40
|
+
headers = { :params => params, :authorization => "Bearer #{@access_token}"}
|
41
|
+
# POST empty payload will do
|
42
|
+
payload = {}
|
43
|
+
opts = {method: :delete, url: url, headers: headers, payload: payload}
|
44
|
+
execute(opts)
|
45
|
+
end
|
46
|
+
|
47
|
+
# multipart file upload
|
48
|
+
def update_desktop_background(desktop_background_file, params={})
|
49
|
+
url = "#{base_path}/desktop-background"
|
50
|
+
headers = { :params => params, :authorization => "Bearer #{@access_token}"}
|
51
|
+
payload = {}
|
52
|
+
#payload['user'] ||= {}
|
53
|
+
#payload['user']['desktopBackground'] = desktop_background_file
|
54
|
+
payload['user.desktopBackground'] = desktop_background_file
|
55
|
+
payload[:multipart] = true
|
56
|
+
opts = {method: :post, url: url, headers: headers, payload: payload}
|
57
|
+
execute(opts)
|
58
|
+
end
|
59
|
+
|
60
|
+
def remove_desktop_background(params={})
|
61
|
+
url = "#{base_path}/desktop-background"
|
42
62
|
headers = { :params => params, :authorization => "Bearer #{@access_token}"}
|
43
63
|
# POST empty payload will do
|
44
64
|
payload = {}
|
@@ -47,21 +67,21 @@ class Morpheus::UserSettingsInterface < Morpheus::APIClient
|
|
47
67
|
end
|
48
68
|
|
49
69
|
def regenerate_access_token(params, payload={})
|
50
|
-
url = "#{
|
70
|
+
url = "#{base_path}/regenerate-access-token"
|
51
71
|
headers = { :params => params, :authorization => "Bearer #{@access_token}", 'Content-Type' => 'application/json'}
|
52
72
|
opts = {method: :put, url: url, headers: headers, payload: payload.to_json}
|
53
73
|
execute(opts)
|
54
74
|
end
|
55
75
|
|
56
76
|
def clear_access_token(params, payload={})
|
57
|
-
url = "#{
|
77
|
+
url = "#{base_path}/clear-access-token"
|
58
78
|
headers = { :params => params, :authorization => "Bearer #{@access_token}", 'Content-Type' => 'application/json'}
|
59
79
|
opts = {method: :put, url: url, headers: headers, payload: payload.to_json}
|
60
80
|
execute(opts)
|
61
81
|
end
|
62
82
|
|
63
83
|
def available_clients(params={})
|
64
|
-
url = "#{
|
84
|
+
url = "#{base_path}/api-clients"
|
65
85
|
headers = { :params => params, authorization: "Bearer #{@access_token}"}
|
66
86
|
opts = {method: :get, url: url, headers: headers}
|
67
87
|
execute(opts)
|