tesla_api 3.0.3 → 3.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,51 +1,111 @@
1
1
  ---
2
2
  http_interactions:
3
- - request:
4
- method: post
5
- uri: https://owner-api.teslamotors.com/oauth/token
6
- body:
7
- encoding: UTF-8
8
- string: grant_type=refresh_token&client_id=<TESLA_CLIENT_ID>&client_secret=<TESLA_CLIENT_SECRET>&refresh_token=<TESLA_REFRESH_TOKEN>
9
- headers:
10
- User-Agent:
11
- - github.com/timdorr/tesla-api v:1.5.0
12
- Authorization:
13
- - Bearer <TESLA_ACCESS_TOKEN>
14
- response:
15
- status:
16
- code: 200
17
- message: OK
18
- headers:
19
- Server:
20
- - nginx
21
- Date:
22
- - Mon, 23 Sep 2019 17:25:05 GMT
23
- Content-Type:
24
- - application/json; charset=utf-8
25
- Transfer-Encoding:
26
- - chunked
27
- Connection:
28
- - keep-alive
29
- X-Frame-Options:
30
- - SAMEORIGIN
31
- - SAMEORIGIN
32
- X-Xss-Protection:
33
- - 1; mode=block
34
- X-Content-Type-Options:
35
- - nosniff
36
- Cache-Control:
37
- - no-store
38
- Pragma:
39
- - no-cache
40
- Etag:
41
- - W/"25e04c26d708b6763d3dca87bcaeb2a7"
42
- X-Request-Id:
43
- - d153d7b0-ce0b-4c24-a109-e60488df7f48
44
- X-Runtime:
45
- - '0.020946'
46
- body:
47
- encoding: UTF-8
48
- string: '{"access_token":"bb91d9892b8af05ad389f2d05b9689657a076f61c4d97ff398f23d86112fb5ca","token_type":"bearer","expires_in":3888000,"refresh_token":"21879d76c4e00309b3d69c6ecb128b89e0c7e210838404601d9f433e9a069022","created_at":1569259505}'
49
- http_version:
50
- recorded_at: Mon, 23 Sep 2019 17:25:05 GMT
51
- recorded_with: VCR 4.0.0
3
+ - request:
4
+ method: post
5
+ uri: https://auth.tesla.com/oauth2/v3/token
6
+ body:
7
+ encoding: UTF-8
8
+ string: '{"grant_type":"refresh_token","scope":"openid email offline_access","client_id":"ownerapi","client_secret":"<TESLA_CLIENT_SECRET>","refresh_token":"<TESLA_REFRESH_TOKEN>"}'
9
+ headers:
10
+ User-Agent:
11
+ - github.com/timdorr/tesla-api v:3.0.7
12
+ Content-Type:
13
+ - application/json
14
+ Accept-Encoding:
15
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
16
+ Accept:
17
+ - '*/*'
18
+ response:
19
+ status:
20
+ code: 200
21
+ message: OK
22
+ headers:
23
+ Server:
24
+ - nginx
25
+ Content-Type:
26
+ - application/json
27
+ X-Dns-Prefetch-Control:
28
+ - 'off'
29
+ X-Frame-Options:
30
+ - DENY
31
+ Strict-Transport-Security:
32
+ - max-age=15552000; includeSubDomains
33
+ X-Download-Options:
34
+ - noopen
35
+ X-Content-Type-Options:
36
+ - nosniff
37
+ X-Xss-Protection:
38
+ - 1; mode=block
39
+ X-Request-Id:
40
+ - c6575e47-91d3-4a07-9985-358de3dbe39e
41
+ X-Correlation-Id:
42
+ - c6575e47-91d3-4a07-9985-358de3dbe39e
43
+ Cache-Control:
44
+ - no-store
45
+ Pragma:
46
+ - no-cache
47
+ X-Response-Time:
48
+ - 24.639ms
49
+ Date:
50
+ - Sat, 30 Jan 2021 15:18:43 GMT
51
+ Content-Length:
52
+ - '2517'
53
+ Connection:
54
+ - keep-alive
55
+ body:
56
+ encoding: UTF-8
57
+ string: '{"access_token":"acess","refresh_token":"<TESLA_REFRESH_TOKEN>","id_token":"id","expires_in":300,"token_type":"Bearer"}'
58
+ recorded_at: Sat, 30 Jan 2021 15:18:43 GMT
59
+ - request:
60
+ method: post
61
+ uri: https://owner-api.teslamotors.com/oauth/token
62
+ body:
63
+ encoding: UTF-8
64
+ string: '{"grant_type":"urn:ietf:params:oauth:grant-type:jwt-bearer","client_id":"<TESLA_CLIENT_ID>","client_secret":"<TESLA_CLIENT_SECRET>"}'
65
+ headers:
66
+ User-Agent:
67
+ - github.com/timdorr/tesla-api v:3.0.7
68
+ Authorization:
69
+ - Bearer bear
70
+ Content-Type:
71
+ - application/json
72
+ Accept-Encoding:
73
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
74
+ Accept:
75
+ - '*/*'
76
+ response:
77
+ status:
78
+ code: 200
79
+ message: OK
80
+ headers:
81
+ Date:
82
+ - Sat, 30 Jan 2021 15:18:44 GMT
83
+ Content-Type:
84
+ - application/json; charset=utf-8
85
+ Transfer-Encoding:
86
+ - chunked
87
+ Connection:
88
+ - keep-alive
89
+ Vary:
90
+ - Accept-Encoding
91
+ X-Frame-Options:
92
+ - SAMEORIGIN
93
+ X-Xss-Protection:
94
+ - 1; mode=block
95
+ X-Content-Type-Options:
96
+ - nosniff
97
+ Etag:
98
+ - W/"85c5baa66d3db433982e5744ccc1e96e"
99
+ Cache-Control:
100
+ - max-age=0, private, must-revalidate
101
+ X-Request-Id:
102
+ - 2f0ad7f617da468d211594930c0e88d52f0ad7f617da468d211594930c0e88d5
103
+ X-Runtime:
104
+ - '0.301686'
105
+ Strict-Transport-Security:
106
+ - max-age=15724800; includeSubDomains
107
+ body:
108
+ encoding: ASCII-8BIT
109
+ string: '{"access_token":"qts-deadbeef","token_type":"bearer","expires_in":3888000,"refresh_token":"yes","created_at":1612019924}'
110
+ recorded_at: Sat, 30 Jan 2021 15:18:44 GMT
111
+ recorded_with: VCR 6.0.0
@@ -0,0 +1,115 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: get
5
+ uri: https://owner-api.teslamotors.com/api/1/vehicles
6
+ body:
7
+ encoding: US-ASCII
8
+ string: ''
9
+ headers:
10
+ User-Agent:
11
+ - github.com/timdorr/tesla-api v:3.0.6
12
+ Authorization:
13
+ - Bearer <TESLA_ACCESS_TOKEN>
14
+ Accept-Encoding:
15
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
16
+ Accept:
17
+ - '*/*'
18
+ response:
19
+ status:
20
+ code: 200
21
+ message: OK
22
+ headers:
23
+ Date:
24
+ - Tue, 10 Nov 2020 02:53:32 GMT
25
+ Content-Type:
26
+ - application/json; charset=utf-8
27
+ Transfer-Encoding:
28
+ - chunked
29
+ Connection:
30
+ - keep-alive
31
+ Vary:
32
+ - Accept-Encoding
33
+ X-Frame-Options:
34
+ - SAMEORIGIN
35
+ X-Xss-Protection:
36
+ - 1; mode=block
37
+ X-Content-Type-Options:
38
+ - nosniff
39
+ X-Txid:
40
+ - 8cab94e3aac7ad773c2e8347050cb4a5
41
+ Etag:
42
+ - W/"cfa5885744c037b595646a39aaae3d82"
43
+ Cache-Control:
44
+ - max-age=0, private, must-revalidate
45
+ X-Request-Id:
46
+ - fb945c7582221ba925e2f4a7628948b5fb945c7582221ba925e2f4a7628948b5
47
+ X-Runtime:
48
+ - '0.080884'
49
+ Strict-Transport-Security:
50
+ - max-age=15724800; includeSubDomains
51
+ body:
52
+ encoding: ASCII-8BIT
53
+ string:
54
+ '{"response":[{"id":26640707449551857,"vehicle_id":1817902171,"vin":"5YJSA1E51GF163743","display_name":"Nikola
55
+ 2.0","option_codes":"AD15,MDL3,PBSB,RENA,BT37,ID3W,RF3G,S3PB,DRLH,DV2W,W39B,APF0,COUS,BC3B,CH07,PC30,FC3P,FG31,GLFR,HL31,HM31,IL31,LTPB,MR31,FM3B,RS3H,SA3P,STCP,SC04,SU3C,T3CA,TW00,TM00,UT3P,WR00,AU3P,APH3,AF00,ZCST,MI00,CDM0","color":null,"access_type":"OWNER","tokens":["no","nope"],"state":"online","in_service":false,"id_s":"26640707449551857","calendar_enabled":true,"api_version":10,"backseat_token":null,"backseat_token_updated_at":null,"vehicle_config":null}],"count":1}'
56
+ http_version:
57
+ recorded_at: Tue, 10 Nov 2020 02:53:32 GMT
58
+ - request:
59
+ method: get
60
+ uri: https://owner-api.teslamotors.com/api/1/vehicles/26640707449551857/data
61
+ body:
62
+ encoding: US-ASCII
63
+ string: ''
64
+ headers:
65
+ User-Agent:
66
+ - github.com/timdorr/tesla-api v:3.0.6
67
+ Authorization:
68
+ - Bearer <TESLA_ACCESS_TOKEN>
69
+ Accept-Encoding:
70
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
71
+ Accept:
72
+ - '*/*'
73
+ response:
74
+ status:
75
+ code: 200
76
+ message: OK
77
+ headers:
78
+ Date:
79
+ - Tue, 10 Nov 2020 02:53:38 GMT
80
+ Content-Type:
81
+ - application/json; charset=utf-8
82
+ Transfer-Encoding:
83
+ - chunked
84
+ Connection:
85
+ - keep-alive
86
+ Vary:
87
+ - Accept-Encoding
88
+ X-Frame-Options:
89
+ - SAMEORIGIN
90
+ X-Xss-Protection:
91
+ - 1; mode=block
92
+ X-Content-Type-Options:
93
+ - nosniff
94
+ X-Txid:
95
+ - 95b841542f321728c867e12aaf9bf6f5
96
+ Etag:
97
+ - W/"4696b909a01379b329bd3311b52b75c6"
98
+ Cache-Control:
99
+ - max-age=0, private, must-revalidate
100
+ X-Request-Id:
101
+ - 53f72c31caff4a2d436805fa1b47215453f72c31caff4a2d436805fa1b472154
102
+ X-Runtime:
103
+ - '5.578065'
104
+ Strict-Transport-Security:
105
+ - max-age=15724800; includeSubDomains
106
+ body:
107
+ encoding: ASCII-8BIT
108
+ string:
109
+ '{"response":{"id":26640707449551857,"user_id":1023,"vehicle_id":1817902171,"vin":"5YJSA1E41GF167745","display_name":"Nikola
110
+ 2.0","option_codes":"AD15,MDL3,PBSB,RENA,BT37,ID3W,RF3G,S3PB,DRLH,DV2W,W39B,APF0,COUS,BC3B,CH07,PC30,FC3P,FG31,GLFR,HL31,HM31,IL31,LTPB,MR31,FM3B,RS3H,SA3P,STCP,SC04,SU3C,T3CA,TW00,TM00,UT3P,WR00,AU3P,APH3,AF00,ZCST,MI00,CDM0","color":null,"access_type":"OWNER","tokens":["9d33fab579bedf74","9eb517d37cab5bf8"],"state":"online","in_service":false,"id_s":"26640707449551857","calendar_enabled":true,"api_version":10,"backseat_token":null,"backseat_token_updated_at":null,"vehicle_config":{"can_accept_navigation_requests":true,"can_actuate_trunks":true,"car_special_type":"base","car_type":"models2","charge_port_type":"US","ece_restrictions":false,"eu_vehicle":false,"exterior_color":"White","has_air_suspension":true,"has_ludicrous_mode":false,"motorized_charge_port":true,"plg":true,"rear_seat_heaters":0,"rear_seat_type":0,"rhd":false,"roof_color":"None","seat_type":2,"spoiler_type":"None","sun_roof_installed":2,"third_row_seats":"None","timestamp":1604976818402,"trim_badging":"p90d","use_range_badging":false,"wheel_type":"AeroTurbine19"},"gui_settings":{"gui_24_hour_time":false,"gui_charge_rate_units":"mi/hr","gui_distance_units":"mi/hr","gui_range_display":"Rated","gui_temperature_units":"F","show_range_units":true,"timestamp":1604976818399},"drive_state":{"gps_as_of":1604976817,"heading":5,"latitude":3.972,"longitude":-4.9147,"native_latitude":3.982,"native_location_supported":1,"native_longitude":-4.947,"native_type":"wgs","power":0,"shift_state":null,"speed":null,"timestamp":1604976818416},"vehicle_state":{"api_version":10,"autopark_state_v2":"standby","autopark_style":"standard","calendar_supported":true,"car_version":"2020.36.16
111
+ 3e9e4e8dd287","center_display_state":0,"df":0,"dr":0,"ft":0,"homelink_device_count":2,"homelink_nearby":true,"is_user_present":false,"last_autopark_error":"no_error","locked":false,"media_state":{"remote_control_enabled":true},"notifications_supported":true,"odometer":57509.856033,"parsed_calendar_supported":true,"pf":0,"pr":0,"remote_start":false,"remote_start_enabled":true,"remote_start_supported":true,"rt":0,"sentry_mode":false,"sentry_mode_available":true,"smart_summon_available":true,"software_update":{"download_perc":0,"expected_duration_sec":2700,"install_perc":1,"status":"","version":""},"speed_limit_mode":{"active":false,"current_limit_mph":50.0,"max_limit_mph":90,"min_limit_mph":50,"pin_code_set":true},"summon_standby_mode_enabled":false,"sun_roof_percent_open":0,"sun_roof_state":"closed","timestamp":1604976818414,"valet_mode":false,"valet_pin_needed":true,"vehicle_name":"Nikola
112
+ 2.0"},"charge_state":{"battery_heater_on":false,"battery_level":90,"battery_range":224.81,"charge_current_request":40,"charge_current_request_max":40,"charge_enable_request":true,"charge_energy_added":29.41,"charge_limit_soc":90,"charge_limit_soc_max":100,"charge_limit_soc_min":50,"charge_limit_soc_std":90,"charge_miles_added_ideal":118.5,"charge_miles_added_rated":95.0,"charge_port_cold_weather_mode":null,"charge_port_door_open":true,"charge_port_latch":"Engaged","charge_rate":0.0,"charge_to_max_range":false,"charger_actual_current":0,"charger_phases":null,"charger_pilot_current":40,"charger_power":0,"charger_voltage":0,"charging_state":"Complete","conn_charge_cable":"SAE","est_battery_range":171.24,"fast_charger_brand":"<invalid>","fast_charger_present":false,"fast_charger_type":"<invalid>","ideal_battery_range":281.02,"managed_charging_active":false,"managed_charging_start_time":null,"managed_charging_user_canceled":false,"max_range_charge_counter":0,"minutes_to_full_charge":0,"not_enough_power_to_heat":false,"scheduled_charging_pending":false,"scheduled_charging_start_time":null,"time_to_full_charge":0.0,"timestamp":1604976818400,"trip_charging":false,"usable_battery_level":90,"user_charge_enable_request":null},"climate_state":{"battery_heater":false,"battery_heater_no_power":false,"climate_keeper_mode":"off","defrost_mode":0,"driver_temp_setting":22.8,"fan_status":0,"inside_temp":27.0,"is_auto_conditioning_on":false,"is_climate_on":false,"is_front_defroster_on":false,"is_preconditioning":false,"is_rear_defroster_on":false,"left_temp_direction":-223,"max_avail_temp":28.0,"min_avail_temp":15.0,"outside_temp":23.0,"passenger_temp_setting":22.8,"remote_heater_control_enabled":false,"right_temp_direction":-223,"seat_heater_left":0,"seat_heater_right":0,"side_mirror_heaters":false,"timestamp":1604976818413,"wiper_blade_heater":false}}}'
113
+ http_version:
114
+ recorded_at: Tue, 10 Nov 2020 02:53:38 GMT
115
+ recorded_with: VCR 4.0.0
@@ -3,6 +3,8 @@ require 'spec_helper'
3
3
  RSpec.describe TeslaApi::Client do
4
4
  subject(:tesla_api) { TeslaApi::Client.new(email: ENV['TESLA_EMAIL']) }
5
5
 
6
+ it { is_expected.to be_a(TeslaApi::Client) }
7
+
6
8
  context 'password grant auth' do
7
9
  describe '#new' do
8
10
  it 'has no expiry date' do
@@ -14,9 +16,13 @@ RSpec.describe TeslaApi::Client do
14
16
  end
15
17
  end
16
18
 
17
- describe '#login!', vcr: { cassette_name: 'client-login' } do
18
- it { is_expected.to be_a(TeslaApi::Client) }
19
-
19
+ describe '#login!', vcr: {
20
+ cassette_name: 'client-login',
21
+ match_requests_on: [
22
+ :method,
23
+ VCR.request_matchers.uri_without_params(:code_challenge, :state)
24
+ ]
25
+ } do
20
26
  it 'logs into the API' do
21
27
  tesla_api.login!(ENV['TESLA_PASS'])
22
28
  expect(a_request(:post, "https://#{URI.parse(TeslaApi::Client::BASE_URI).host}/oauth/token")).to have_been_made.once
@@ -24,22 +30,22 @@ RSpec.describe TeslaApi::Client do
24
30
 
25
31
  it 'obtains a Bearer token' do
26
32
  tesla_api.login!(ENV['TESLA_PASS'])
27
- expect(tesla_api.access_token).to match(/[a-z0-9]{32}/)
33
+ expect(tesla_api.access_token).to start_with('qts-')
28
34
  end
29
35
 
30
36
  it 'set a expiry date' do
31
37
  tesla_api.login!(ENV['TESLA_PASS'])
32
- expect(tesla_api.access_token_expires_at).to eq(Time.at(1475777133 + 7776000).to_datetime)
38
+ expect(tesla_api.access_token_expires_at).to eq(Time.at(1612019326 + 3888000).to_datetime)
33
39
  end
34
40
 
35
41
  it 'obtains a refresh token' do
36
42
  tesla_api.login!(ENV['TESLA_PASS'])
37
- expect(tesla_api.refresh_token).to match(/[a-z0-9]{32}/)
43
+ expect(tesla_api.refresh_token).to start_with('eyJ')
38
44
  end
39
45
 
40
46
  it 'expose expiry status' do
41
47
  tesla_api.login!(ENV['TESLA_PASS'])
42
- expect(tesla_api.expired?).to eq(true)
48
+ expect(tesla_api.expired?).to eq(false)
43
49
  end
44
50
  end
45
51
  end
@@ -60,7 +66,13 @@ RSpec.describe TeslaApi::Client do
60
66
  end
61
67
  end
62
68
 
63
- describe '#refresh_access_token', vcr: {cassette_name: 'client-refresh'} do
69
+ describe '#refresh_access_token', vcr: {
70
+ cassette_name: 'client-refresh',
71
+ match_requests_on: [
72
+ :method,
73
+ VCR.request_matchers.uri_without_params(:code_challenge, :state)
74
+ ]
75
+ } do
64
76
  it 'refreshes the access token' do
65
77
  tesla_api.refresh_access_token
66
78
  expect(tesla_api.access_token).not_to eq(access_token)
@@ -21,6 +21,18 @@ RSpec.describe TeslaApi::Vehicle do
21
21
  end
22
22
  end
23
23
 
24
+ describe '#vehicle_data', vcr: {cassette_name: 'vehicle-vehicle_data'} do
25
+ context 'data about the vehicle\'s overall state' do
26
+ subject { vehicle.data }
27
+
28
+ it { should include('display_name') }
29
+ it { should include('drive_state') }
30
+ it { should include('vehicle_state') }
31
+ it { should include('vehicle_config') }
32
+ it { should include('charge_state') }
33
+ end
34
+ end
35
+
24
36
  describe '#data', vcr: {cassette_name: 'vehicle-data'} do
25
37
  context 'data about the vehicle\'s overall state' do
26
38
  subject { vehicle.data }
@@ -19,9 +19,9 @@ Gem::Specification.new do |spec|
19
19
  spec.add_dependency 'faraday_middleware'
20
20
 
21
21
  spec.add_development_dependency 'bundler', '~> 2.0'
22
- spec.add_development_dependency 'rake', '~> 12.0'
22
+ spec.add_development_dependency 'rake', '~> 13.0'
23
23
  spec.add_development_dependency 'rspec', '~> 3.1'
24
- spec.add_development_dependency 'vcr', '~> 4.0'
24
+ spec.add_development_dependency 'vcr', '~> 6.0'
25
25
  spec.add_development_dependency 'webmock', '~> 3.0'
26
26
  spec.add_development_dependency 'dotenv', '~> 2.0'
27
27
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: tesla_api
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.0.3
4
+ version: 3.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Tim Dorr
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-10-11 00:00:00.000000000 Z
11
+ date: 2021-01-30 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: async-websocket
@@ -72,14 +72,14 @@ dependencies:
72
72
  requirements:
73
73
  - - "~>"
74
74
  - !ruby/object:Gem::Version
75
- version: '12.0'
75
+ version: '13.0'
76
76
  type: :development
77
77
  prerelease: false
78
78
  version_requirements: !ruby/object:Gem::Requirement
79
79
  requirements:
80
80
  - - "~>"
81
81
  - !ruby/object:Gem::Version
82
- version: '12.0'
82
+ version: '13.0'
83
83
  - !ruby/object:Gem::Dependency
84
84
  name: rspec
85
85
  requirement: !ruby/object:Gem::Requirement
@@ -100,14 +100,14 @@ dependencies:
100
100
  requirements:
101
101
  - - "~>"
102
102
  - !ruby/object:Gem::Version
103
- version: '4.0'
103
+ version: '6.0'
104
104
  type: :development
105
105
  prerelease: false
106
106
  version_requirements: !ruby/object:Gem::Requirement
107
107
  requirements:
108
108
  - - "~>"
109
109
  - !ruby/object:Gem::Version
110
- version: '4.0'
110
+ version: '6.0'
111
111
  - !ruby/object:Gem::Dependency
112
112
  name: webmock
113
113
  requirement: !ruby/object:Gem::Requirement
@@ -145,10 +145,10 @@ extensions: []
145
145
  extra_rdoc_files: []
146
146
  files:
147
147
  - ".gitbook.yml"
148
+ - ".github/workflows/test.yml"
148
149
  - ".gitignore"
149
150
  - ".rspec"
150
151
  - ".tool-versions"
151
- - ".travis.yml"
152
152
  - Gemfile
153
153
  - LICENSE
154
154
  - README.md
@@ -252,6 +252,7 @@ files:
252
252
  - spec/cassettes/vehicle-sun_roof_control-close.yml
253
253
  - spec/cassettes/vehicle-sun_roof_control-vent.yml
254
254
  - spec/cassettes/vehicle-vehicle_config.yml
255
+ - spec/cassettes/vehicle-vehicle_data.yml
255
256
  - spec/cassettes/vehicle-vehicle_state.yml
256
257
  - spec/cassettes/vehicle-wake_up.yml
257
258
  - spec/cassettes/vehicle.yml
@@ -263,7 +264,7 @@ homepage: https://github.com/timdorr/tesla-api
263
264
  licenses:
264
265
  - MIT
265
266
  metadata: {}
266
- post_install_message:
267
+ post_install_message:
267
268
  rdoc_options: []
268
269
  require_paths:
269
270
  - lib
@@ -278,8 +279,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
278
279
  - !ruby/object:Gem::Version
279
280
  version: '0'
280
281
  requirements: []
281
- rubygems_version: 3.0.6
282
- signing_key:
282
+ rubygems_version: 3.1.4
283
+ signing_key:
283
284
  specification_version: 4
284
285
  summary: A wrapper for the Tesla JSON API
285
286
  test_files:
@@ -338,6 +339,7 @@ test_files:
338
339
  - spec/cassettes/vehicle-sun_roof_control-close.yml
339
340
  - spec/cassettes/vehicle-sun_roof_control-vent.yml
340
341
  - spec/cassettes/vehicle-vehicle_config.yml
342
+ - spec/cassettes/vehicle-vehicle_data.yml
341
343
  - spec/cassettes/vehicle-vehicle_state.yml
342
344
  - spec/cassettes/vehicle-wake_up.yml
343
345
  - spec/cassettes/vehicle.yml