ev-recharge-sdk 1.3.0 → 2.0.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.
- checksums.yaml +4 -4
- data/LICENSE +1 -1
- data/README.md +91 -25
- data/bin/console +15 -0
- data/lib/shell_ev/api_helper.rb +2 -2
- data/lib/shell_ev/client.rb +15 -4
- data/lib/shell_ev/configuration.rb +88 -15
- data/lib/shell_ev/controllers/base_controller.rb +3 -9
- data/lib/shell_ev/controllers/charging_controller.rb +19 -18
- data/lib/shell_ev/controllers/locations_controller.rb +48 -50
- data/lib/shell_ev/controllers/o_auth_authorization_controller.rb +5 -5
- data/lib/shell_ev/exceptions/api_exception.rb +13 -2
- data/lib/shell_ev/exceptions/bad_request_exception.rb +20 -5
- data/lib/shell_ev/exceptions/internal_server_error_exception.rb +21 -5
- data/lib/shell_ev/exceptions/not_found_exception.rb +20 -5
- data/lib/shell_ev/exceptions/o_auth_provider_exception.rb +21 -5
- data/lib/shell_ev/exceptions/serviceunavailable_exception.rb +20 -5
- data/lib/shell_ev/exceptions/too_many_requests_exception.rb +20 -5
- data/lib/shell_ev/exceptions/unauthorized_exception.rb +20 -5
- data/lib/shell_ev/exceptions/v2_charge_session_retrieve404_error_exception.rb +67 -0
- data/lib/shell_ev/exceptions/v2_charge_session_start404_error_exception.rb +67 -0
- data/lib/shell_ev/exceptions/v2_charge_session_stop404_error_exception.rb +67 -0
- data/lib/shell_ev/http/auth/o_auth2.rb +18 -3
- data/lib/shell_ev/http/http_call_back.rb +2 -2
- data/lib/shell_ev/http/http_method_enum.rb +2 -2
- data/lib/shell_ev/http/http_request.rb +2 -2
- data/lib/shell_ev/http/http_response.rb +2 -2
- data/lib/shell_ev/http/proxy_settings.rb +22 -0
- data/lib/shell_ev/models/accessibility_status_enum.rb +17 -2
- data/lib/shell_ev/models/{accessibility.rb → accessibility_v2.rb} +17 -14
- data/lib/shell_ev/models/active_response200_json.rb +15 -2
- data/lib/shell_ev/models/active_response200_json_status_enum.rb +15 -2
- data/lib/shell_ev/models/address.rb +16 -2
- data/lib/shell_ev/models/bad_request_err_msg.rb +16 -2
- data/lib/shell_ev/models/base_model.rb +2 -2
- data/lib/shell_ev/models/charge_error.rb +14 -2
- data/lib/shell_ev/models/charge_retrieve_state.rb +14 -2
- data/lib/shell_ev/models/chargesession_start_body.rb +15 -2
- data/lib/shell_ev/models/connector_types_enum.rb +100 -0
- data/lib/shell_ev/models/connector_v2.rb +95 -0
- data/lib/shell_ev/models/connector_vo_connector_type_enum.rb +31 -2
- data/lib/shell_ev/models/connector_vo_updated_by_enum.rb +17 -2
- data/lib/shell_ev/models/coordinates.rb +14 -2
- data/lib/shell_ev/models/coordinates1.rb +81 -0
- data/lib/shell_ev/models/data_active.rb +19 -2
- data/lib/shell_ev/models/data_retrieve.rb +19 -2
- data/lib/shell_ev/models/day_of_week_enum.rb +56 -0
- data/lib/shell_ev/models/electrical_properties_power_type_enum.rb +16 -2
- data/lib/shell_ev/models/{electrical_properties.rb → electrical_properties_v2.rb} +22 -8
- data/lib/shell_ev/models/evse_status_enum.rb +44 -0
- data/lib/shell_ev/models/{evse_vo.rb → evse_v2.rb} +45 -38
- data/lib/shell_ev/models/evse_vo_authorization_methods_enum.rb +16 -2
- data/lib/shell_ev/models/evse_vo_status_enum.rb +17 -2
- data/lib/shell_ev/models/get_charge_session_retrieve_response200_json.rb +15 -2
- data/lib/shell_ev/models/get_charge_session_retrieve_response200_json_status_enum.rb +15 -2
- data/lib/shell_ev/models/get_ev_locations_authorization_methods_enum.rb +16 -2
- data/lib/shell_ev/models/get_ev_locations_connector_types_enum.rb +31 -2
- data/lib/shell_ev/models/get_ev_locations_evse_status_enum.rb +17 -2
- data/lib/shell_ev/models/inline_response202.rb +17 -6
- data/lib/shell_ev/models/inline_response2021.rb +14 -2
- data/lib/shell_ev/models/inline_response2021_status_enum.rb +15 -2
- data/lib/shell_ev/models/inline_response202_data.rb +14 -2
- data/lib/shell_ev/models/inline_response202_status_enum.rb +15 -2
- data/lib/shell_ev/models/internal_error_object.rb +15 -2
- data/lib/shell_ev/models/{location_respone_object.rb → location_respone_object_v2.rb} +61 -30
- data/lib/shell_ev/models/locations_markers_authorization_methods_enum.rb +16 -2
- data/lib/shell_ev/models/locations_markers_connector_types_enum.rb +31 -2
- data/lib/shell_ev/models/locations_markers_evse_status_enum.rb +17 -2
- data/lib/shell_ev/models/multi_location_marker.rb +22 -5
- data/lib/shell_ev/models/multi_location_marker_v2.rb +126 -0
- data/lib/shell_ev/models/nearby_locations_authorization_methods_enum.rb +16 -2
- data/lib/shell_ev/models/nearby_locations_connector_types_enum.rb +31 -2
- data/lib/shell_ev/models/nearby_locations_evse_status_enum.rb +17 -2
- data/lib/shell_ev/models/not_found_err_msg.rb +16 -2
- data/lib/shell_ev/models/o_auth_provider_error_enum.rb +19 -2
- data/lib/shell_ev/models/o_auth_token.rb +2 -2
- data/lib/shell_ev/models/opening_hours_object.rb +17 -3
- data/lib/shell_ev/models/opening_hours_object_week_day_enum.rb +20 -2
- data/lib/shell_ev/models/power_range.rb +68 -0
- data/lib/shell_ev/models/price_component.rb +86 -0
- data/lib/shell_ev/models/ratelimit_err_msg.rb +16 -2
- data/lib/shell_ev/models/{response.rb → response_v2.rb} +22 -9
- data/lib/shell_ev/models/restrictions.rb +183 -0
- data/lib/shell_ev/models/search_by_id_connector.rb +115 -0
- data/lib/shell_ev/models/search_by_id_evse.rb +145 -0
- data/lib/shell_ev/models/search_by_id_location_respone.rb +196 -0
- data/lib/shell_ev/models/search_by_id_response.rb +91 -0
- data/lib/shell_ev/models/serviceunavailable_err_msg.rb +16 -2
- data/lib/shell_ev/models/single_location_marker.rb +27 -6
- data/lib/shell_ev/models/single_location_marker_authorization_methods_items_enum.rb +16 -2
- data/lib/shell_ev/models/single_location_marker_response.rb +15 -2
- data/lib/shell_ev/models/single_location_marker_response_v2.rb +94 -0
- data/lib/shell_ev/models/single_location_marker_status_enum.rb +17 -2
- data/lib/shell_ev/models/single_location_marker_v2.rb +157 -0
- data/lib/shell_ev/models/tariff.rb +20 -3
- data/lib/shell_ev/models/tariff_alt_text.rb +68 -0
- data/lib/shell_ev/models/tariff_element.rb +80 -0
- data/lib/shell_ev/models/tariff_type_enum.rb +44 -0
- data/lib/shell_ev/models/tariff_v2.rb +226 -0
- data/lib/shell_ev/models/tariff_vo_updated_by_enum.rb +17 -2
- data/lib/shell_ev/models/type_enum.rb +44 -0
- data/lib/shell_ev/models/unauthorized_err_msg.rb +16 -2
- data/lib/shell_ev/utilities/date_time_helper.rb +2 -2
- data/lib/shell_ev/utilities/file_wrapper.rb +16 -4
- data/lib/shell_ev/utilities/union_type_lookup.rb +19 -2
- data/lib/shell_ev.rb +34 -10
- data/test/controllers/controller_test_base.rb +5 -10
- data/test/controllers/test_charging_controller.rb +7 -11
- data/test/controllers/test_locations_controller.rb +8 -11
- data/test/http_response_catcher.rb +3 -3
- metadata +38 -15
- data/lib/shell_ev/models/connector_vo.rb +0 -131
- data/lib/shell_ev/models/tariff_vo.rb +0 -107
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
# shell_ev
|
|
2
|
+
#
|
|
3
|
+
# This file was automatically generated by APIMATIC v3.0 (
|
|
4
|
+
# https://www.apimatic.io ).
|
|
5
|
+
|
|
6
|
+
module ShellEv
|
|
7
|
+
# connectorTypes.
|
|
8
|
+
class ConnectorTypesEnum
|
|
9
|
+
CONNECTOR_TYPES_ENUM = [
|
|
10
|
+
# TODO: Write general description for AVCON
|
|
11
|
+
AVCON = 'Avcon'.freeze,
|
|
12
|
+
|
|
13
|
+
# TODO: Write general description for DOMESTIC
|
|
14
|
+
DOMESTIC = 'Domestic'.freeze,
|
|
15
|
+
|
|
16
|
+
# TODO: Write general description for INDUSTRIAL2PDC
|
|
17
|
+
INDUSTRIAL2PDC = 'Industrial2PDc'.freeze,
|
|
18
|
+
|
|
19
|
+
# TODO: Write general description for INDUSTRIALPNEAC
|
|
20
|
+
INDUSTRIALPNEAC = 'IndustrialPneAc'.freeze,
|
|
21
|
+
|
|
22
|
+
# TODO: Write general description for INDUSTRIAL3PEAC
|
|
23
|
+
INDUSTRIAL3PEAC = 'Industrial3PEAc'.freeze,
|
|
24
|
+
|
|
25
|
+
# TODO: Write general description for INDUSTRIAL3PENAC
|
|
26
|
+
INDUSTRIAL3PENAC = 'Industrial3PENAc'.freeze,
|
|
27
|
+
|
|
28
|
+
# TODO: Write general description for TYPE1
|
|
29
|
+
TYPE1 = 'Type1'.freeze,
|
|
30
|
+
|
|
31
|
+
# TODO: Write general description for TYPE1COMBO
|
|
32
|
+
TYPE1COMBO = 'Type1Combo'.freeze,
|
|
33
|
+
|
|
34
|
+
# TODO: Write general description for TYPE2
|
|
35
|
+
TYPE2 = 'Type2'.freeze,
|
|
36
|
+
|
|
37
|
+
# TODO: Write general description for TYPE2COMBO
|
|
38
|
+
TYPE2COMBO = 'Type2Combo'.freeze,
|
|
39
|
+
|
|
40
|
+
# TODO: Write general description for TYPE3
|
|
41
|
+
TYPE3 = 'Type3'.freeze,
|
|
42
|
+
|
|
43
|
+
# TODO: Write general description for LPI
|
|
44
|
+
LPI = 'LPI'.freeze,
|
|
45
|
+
|
|
46
|
+
# TODO: Write general description for NEMA520
|
|
47
|
+
NEMA520 = 'Nema520'.freeze,
|
|
48
|
+
|
|
49
|
+
# TODO: Write general description for SAEJ1772
|
|
50
|
+
SAEJ1772 = 'SAEJ1772'.freeze,
|
|
51
|
+
|
|
52
|
+
# TODO: Write general description for SPI
|
|
53
|
+
SPI = 'SPI'.freeze,
|
|
54
|
+
|
|
55
|
+
# TODO: Write general description for TEPCOCHADEMO
|
|
56
|
+
TEPCOCHADEMO = 'TepcoCHAdeMO'.freeze,
|
|
57
|
+
|
|
58
|
+
# TODO: Write general description for TESLA
|
|
59
|
+
TESLA = 'Tesla'.freeze,
|
|
60
|
+
|
|
61
|
+
# TODO: Write general description for UNSPECIFIED
|
|
62
|
+
UNSPECIFIED = 'Unspecified'.freeze
|
|
63
|
+
].freeze
|
|
64
|
+
|
|
65
|
+
def self.validate(value)
|
|
66
|
+
return false if value.nil?
|
|
67
|
+
|
|
68
|
+
CONNECTOR_TYPES_ENUM.include?(value)
|
|
69
|
+
end
|
|
70
|
+
|
|
71
|
+
def self.from_value(value, default_value = AVCON)
|
|
72
|
+
return default_value if value.nil?
|
|
73
|
+
|
|
74
|
+
str = value.to_s.strip
|
|
75
|
+
|
|
76
|
+
case str.downcase
|
|
77
|
+
when 'avcon' then AVCON
|
|
78
|
+
when 'domestic' then DOMESTIC
|
|
79
|
+
when 'industrial2pdc' then INDUSTRIAL2PDC
|
|
80
|
+
when 'industrialpneac' then INDUSTRIALPNEAC
|
|
81
|
+
when 'industrial3peac' then INDUSTRIAL3PEAC
|
|
82
|
+
when 'industrial3penac' then INDUSTRIAL3PENAC
|
|
83
|
+
when 'type1' then TYPE1
|
|
84
|
+
when 'type1combo' then TYPE1COMBO
|
|
85
|
+
when 'type2' then TYPE2
|
|
86
|
+
when 'type2combo' then TYPE2COMBO
|
|
87
|
+
when 'type3' then TYPE3
|
|
88
|
+
when 'lpi' then LPI
|
|
89
|
+
when 'nema520' then NEMA520
|
|
90
|
+
when 'saej1772' then SAEJ1772
|
|
91
|
+
when 'spi' then SPI
|
|
92
|
+
when 'tepcochademo' then TEPCOCHADEMO
|
|
93
|
+
when 'tesla' then TESLA
|
|
94
|
+
when 'unspecified' then UNSPECIFIED
|
|
95
|
+
else
|
|
96
|
+
default_value
|
|
97
|
+
end
|
|
98
|
+
end
|
|
99
|
+
end
|
|
100
|
+
end
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
# shell_ev
|
|
2
|
+
#
|
|
3
|
+
# This file was automatically generated by APIMATIC v3.0 (
|
|
4
|
+
# https://www.apimatic.io ).
|
|
5
|
+
|
|
6
|
+
module ShellEv
|
|
7
|
+
# An EVSE can have one or many Connectors. Each Connector will normally have a
|
|
8
|
+
# different socket / cable and only one can be used to charge at a time.
|
|
9
|
+
class ConnectorV2 < BaseModel
|
|
10
|
+
SKIP = Object.new
|
|
11
|
+
private_constant :SKIP
|
|
12
|
+
|
|
13
|
+
# Internal identifier used to refer to this Connector
|
|
14
|
+
# @return [String]
|
|
15
|
+
attr_accessor :uid
|
|
16
|
+
|
|
17
|
+
# Identifier of the Evse as given by the Operator, unique for the containing
|
|
18
|
+
# EVSE'
|
|
19
|
+
# @return [String]
|
|
20
|
+
attr_accessor :external_id
|
|
21
|
+
|
|
22
|
+
# Type of the connector in the EVSE unit.
|
|
23
|
+
# @return [ConnectorVOConnectorTypeEnum]
|
|
24
|
+
attr_accessor :connector_type
|
|
25
|
+
|
|
26
|
+
# Electrical Properties of the Connector
|
|
27
|
+
# @return [ElectricalPropertiesV2]
|
|
28
|
+
attr_accessor :electrical_properties
|
|
29
|
+
|
|
30
|
+
# A mapping from model property names to API property names.
|
|
31
|
+
def self.names
|
|
32
|
+
@_hash = {} if @_hash.nil?
|
|
33
|
+
@_hash['uid'] = 'uid'
|
|
34
|
+
@_hash['external_id'] = 'externalId'
|
|
35
|
+
@_hash['connector_type'] = 'connectorType'
|
|
36
|
+
@_hash['electrical_properties'] = 'electricalProperties'
|
|
37
|
+
@_hash
|
|
38
|
+
end
|
|
39
|
+
|
|
40
|
+
# An array for optional fields
|
|
41
|
+
def self.optionals
|
|
42
|
+
%w[
|
|
43
|
+
uid
|
|
44
|
+
external_id
|
|
45
|
+
connector_type
|
|
46
|
+
electrical_properties
|
|
47
|
+
]
|
|
48
|
+
end
|
|
49
|
+
|
|
50
|
+
# An array for nullable fields
|
|
51
|
+
def self.nullables
|
|
52
|
+
[]
|
|
53
|
+
end
|
|
54
|
+
|
|
55
|
+
def initialize(uid = SKIP, external_id = SKIP, connector_type = SKIP,
|
|
56
|
+
electrical_properties = SKIP)
|
|
57
|
+
@uid = uid unless uid == SKIP
|
|
58
|
+
@external_id = external_id unless external_id == SKIP
|
|
59
|
+
@connector_type = connector_type unless connector_type == SKIP
|
|
60
|
+
@electrical_properties = electrical_properties unless electrical_properties == SKIP
|
|
61
|
+
end
|
|
62
|
+
|
|
63
|
+
# Creates an instance of the object from a hash.
|
|
64
|
+
def self.from_hash(hash)
|
|
65
|
+
return nil unless hash
|
|
66
|
+
|
|
67
|
+
# Extract variables from the hash.
|
|
68
|
+
uid = hash.key?('uid') ? hash['uid'] : SKIP
|
|
69
|
+
external_id = hash.key?('externalId') ? hash['externalId'] : SKIP
|
|
70
|
+
connector_type = hash.key?('connectorType') ? hash['connectorType'] : SKIP
|
|
71
|
+
electrical_properties = ElectricalPropertiesV2.from_hash(hash['electricalProperties']) if
|
|
72
|
+
hash['electricalProperties']
|
|
73
|
+
|
|
74
|
+
# Create object from extracted values.
|
|
75
|
+
ConnectorV2.new(uid,
|
|
76
|
+
external_id,
|
|
77
|
+
connector_type,
|
|
78
|
+
electrical_properties)
|
|
79
|
+
end
|
|
80
|
+
|
|
81
|
+
# Provides a human-readable string representation of the object.
|
|
82
|
+
def to_s
|
|
83
|
+
class_name = self.class.name.split('::').last
|
|
84
|
+
"<#{class_name} uid: #{@uid}, external_id: #{@external_id}, connector_type:"\
|
|
85
|
+
" #{@connector_type}, electrical_properties: #{@electrical_properties}>"
|
|
86
|
+
end
|
|
87
|
+
|
|
88
|
+
# Provides a debugging-friendly string with detailed object information.
|
|
89
|
+
def inspect
|
|
90
|
+
class_name = self.class.name.split('::').last
|
|
91
|
+
"<#{class_name} uid: #{@uid.inspect}, external_id: #{@external_id.inspect}, connector_type:"\
|
|
92
|
+
" #{@connector_type.inspect}, electrical_properties: #{@electrical_properties.inspect}>"
|
|
93
|
+
end
|
|
94
|
+
end
|
|
95
|
+
end
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
# shell_ev
|
|
2
2
|
#
|
|
3
|
-
# This file was automatically generated by APIMATIC
|
|
4
|
-
#
|
|
3
|
+
# This file was automatically generated by APIMATIC v3.0 (
|
|
4
|
+
# https://www.apimatic.io ).
|
|
5
5
|
|
|
6
6
|
module ShellEv
|
|
7
7
|
# Type of the connector in the EVSE unit.
|
|
@@ -67,5 +67,34 @@ module ShellEv
|
|
|
67
67
|
|
|
68
68
|
CONNECTOR_VO_CONNECTOR_TYPE_ENUM.include?(value)
|
|
69
69
|
end
|
|
70
|
+
|
|
71
|
+
def self.from_value(value, default_value = AVCON)
|
|
72
|
+
return default_value if value.nil?
|
|
73
|
+
|
|
74
|
+
str = value.to_s.strip
|
|
75
|
+
|
|
76
|
+
case str.downcase
|
|
77
|
+
when 'avcon' then AVCON
|
|
78
|
+
when 'domestic' then DOMESTIC
|
|
79
|
+
when 'industrial2pdc' then INDUSTRIAL2PDC
|
|
80
|
+
when 'industrialpneac' then INDUSTRIALPNEAC
|
|
81
|
+
when 'industrial3peac' then INDUSTRIAL3PEAC
|
|
82
|
+
when 'industrial3penac' then INDUSTRIAL3PENAC
|
|
83
|
+
when 'type1' then TYPE1
|
|
84
|
+
when 'type1combo' then TYPE1COMBO
|
|
85
|
+
when 'type2' then TYPE2
|
|
86
|
+
when 'type2combo' then TYPE2COMBO
|
|
87
|
+
when 'type3' then TYPE3
|
|
88
|
+
when 'lpi' then LPI
|
|
89
|
+
when 'nema520' then NEMA520
|
|
90
|
+
when 'saej1772' then SAEJ1772
|
|
91
|
+
when 'spi' then SPI
|
|
92
|
+
when 'tepcochademo' then TEPCOCHADEMO
|
|
93
|
+
when 'tesla' then TESLA
|
|
94
|
+
when 'unspecified' then UNSPECIFIED
|
|
95
|
+
else
|
|
96
|
+
default_value
|
|
97
|
+
end
|
|
98
|
+
end
|
|
70
99
|
end
|
|
71
100
|
end
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
# shell_ev
|
|
2
2
|
#
|
|
3
|
-
# This file was automatically generated by APIMATIC
|
|
4
|
-
#
|
|
3
|
+
# This file was automatically generated by APIMATIC v3.0 (
|
|
4
|
+
# https://www.apimatic.io ).
|
|
5
5
|
|
|
6
6
|
module ShellEv
|
|
7
7
|
# Source of the last update
|
|
@@ -25,5 +25,20 @@ module ShellEv
|
|
|
25
25
|
|
|
26
26
|
CONNECTOR_VO_UPDATED_BY_ENUM.include?(value)
|
|
27
27
|
end
|
|
28
|
+
|
|
29
|
+
def self.from_value(value, default_value = FEED)
|
|
30
|
+
return default_value if value.nil?
|
|
31
|
+
|
|
32
|
+
str = value.to_s.strip
|
|
33
|
+
|
|
34
|
+
case str.downcase
|
|
35
|
+
when 'feed' then FEED
|
|
36
|
+
when 'admin' then ADMIN
|
|
37
|
+
when 'tariffservice' then TARIFFSERVICE
|
|
38
|
+
when 'defaults' then DEFAULTS
|
|
39
|
+
else
|
|
40
|
+
default_value
|
|
41
|
+
end
|
|
42
|
+
end
|
|
28
43
|
end
|
|
29
44
|
end
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
# shell_ev
|
|
2
2
|
#
|
|
3
|
-
# This file was automatically generated by APIMATIC
|
|
4
|
-
#
|
|
3
|
+
# This file was automatically generated by APIMATIC v3.0 (
|
|
4
|
+
# https://www.apimatic.io ).
|
|
5
5
|
|
|
6
6
|
module ShellEv
|
|
7
7
|
# Coordinates of the Shell Recharge Site Location
|
|
@@ -65,5 +65,17 @@ module ShellEv
|
|
|
65
65
|
|
|
66
66
|
true
|
|
67
67
|
end
|
|
68
|
+
|
|
69
|
+
# Provides a human-readable string representation of the object.
|
|
70
|
+
def to_s
|
|
71
|
+
class_name = self.class.name.split('::').last
|
|
72
|
+
"<#{class_name} latitude: #{@latitude}, longitude: #{@longitude}>"
|
|
73
|
+
end
|
|
74
|
+
|
|
75
|
+
# Provides a debugging-friendly string with detailed object information.
|
|
76
|
+
def inspect
|
|
77
|
+
class_name = self.class.name.split('::').last
|
|
78
|
+
"<#{class_name} latitude: #{@latitude.inspect}, longitude: #{@longitude.inspect}>"
|
|
79
|
+
end
|
|
68
80
|
end
|
|
69
81
|
end
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
# shell_ev
|
|
2
|
+
#
|
|
3
|
+
# This file was automatically generated by APIMATIC v3.0 (
|
|
4
|
+
# https://www.apimatic.io ).
|
|
5
|
+
|
|
6
|
+
module ShellEv
|
|
7
|
+
# Coordinates1 Model.
|
|
8
|
+
class Coordinates1 < BaseModel
|
|
9
|
+
SKIP = Object.new
|
|
10
|
+
private_constant :SKIP
|
|
11
|
+
|
|
12
|
+
# Latitude of the Coordinate
|
|
13
|
+
# @return [Float]
|
|
14
|
+
attr_accessor :latitude
|
|
15
|
+
|
|
16
|
+
# Longitude of the Coordinate
|
|
17
|
+
# @return [Float]
|
|
18
|
+
attr_accessor :longitude
|
|
19
|
+
|
|
20
|
+
# A mapping from model property names to API property names.
|
|
21
|
+
def self.names
|
|
22
|
+
@_hash = {} if @_hash.nil?
|
|
23
|
+
@_hash['latitude'] = 'latitude'
|
|
24
|
+
@_hash['longitude'] = 'longitude'
|
|
25
|
+
@_hash
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
# An array for optional fields
|
|
29
|
+
def self.optionals
|
|
30
|
+
%w[
|
|
31
|
+
latitude
|
|
32
|
+
longitude
|
|
33
|
+
]
|
|
34
|
+
end
|
|
35
|
+
|
|
36
|
+
# An array for nullable fields
|
|
37
|
+
def self.nullables
|
|
38
|
+
[]
|
|
39
|
+
end
|
|
40
|
+
|
|
41
|
+
def initialize(latitude = SKIP, longitude = SKIP)
|
|
42
|
+
@latitude = latitude unless latitude == SKIP
|
|
43
|
+
@longitude = longitude unless longitude == SKIP
|
|
44
|
+
end
|
|
45
|
+
|
|
46
|
+
# Creates an instance of the object from a hash.
|
|
47
|
+
def self.from_hash(hash)
|
|
48
|
+
return nil unless hash
|
|
49
|
+
|
|
50
|
+
# Extract variables from the hash.
|
|
51
|
+
latitude = hash.key?('latitude') ? hash['latitude'] : SKIP
|
|
52
|
+
longitude = hash.key?('longitude') ? hash['longitude'] : SKIP
|
|
53
|
+
|
|
54
|
+
# Create object from extracted values.
|
|
55
|
+
Coordinates1.new(latitude,
|
|
56
|
+
longitude)
|
|
57
|
+
end
|
|
58
|
+
|
|
59
|
+
# Validates an instance of the object from a given value.
|
|
60
|
+
# @param [Coordinates1 | Hash] The value against the validation is performed.
|
|
61
|
+
def self.validate(value)
|
|
62
|
+
return true if value.instance_of? self
|
|
63
|
+
|
|
64
|
+
return false unless value.instance_of? Hash
|
|
65
|
+
|
|
66
|
+
true
|
|
67
|
+
end
|
|
68
|
+
|
|
69
|
+
# Provides a human-readable string representation of the object.
|
|
70
|
+
def to_s
|
|
71
|
+
class_name = self.class.name.split('::').last
|
|
72
|
+
"<#{class_name} latitude: #{@latitude}, longitude: #{@longitude}>"
|
|
73
|
+
end
|
|
74
|
+
|
|
75
|
+
# Provides a debugging-friendly string with detailed object information.
|
|
76
|
+
def inspect
|
|
77
|
+
class_name = self.class.name.split('::').last
|
|
78
|
+
"<#{class_name} latitude: #{@latitude.inspect}, longitude: #{@longitude.inspect}>"
|
|
79
|
+
end
|
|
80
|
+
end
|
|
81
|
+
end
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
# shell_ev
|
|
2
2
|
#
|
|
3
|
-
# This file was automatically generated by APIMATIC
|
|
4
|
-
#
|
|
3
|
+
# This file was automatically generated by APIMATIC v3.0 (
|
|
4
|
+
# https://www.apimatic.io ).
|
|
5
5
|
|
|
6
6
|
require 'date'
|
|
7
7
|
module ShellEv
|
|
@@ -131,5 +131,22 @@ module ShellEv
|
|
|
131
131
|
def to_custom_stopped_at
|
|
132
132
|
DateTimeHelper.to_rfc3339(stopped_at)
|
|
133
133
|
end
|
|
134
|
+
|
|
135
|
+
# Provides a human-readable string representation of the object.
|
|
136
|
+
def to_s
|
|
137
|
+
class_name = self.class.name.split('::').last
|
|
138
|
+
"<#{class_name} id: #{@id}, user_id: #{@user_id}, ema_id: #{@ema_id}, evse_id: #{@evse_id},"\
|
|
139
|
+
" started_at: #{@started_at}, stopped_at: #{@stopped_at}, session_state: #{@session_state},"\
|
|
140
|
+
" last_updated: #{@last_updated}>"
|
|
141
|
+
end
|
|
142
|
+
|
|
143
|
+
# Provides a debugging-friendly string with detailed object information.
|
|
144
|
+
def inspect
|
|
145
|
+
class_name = self.class.name.split('::').last
|
|
146
|
+
"<#{class_name} id: #{@id.inspect}, user_id: #{@user_id.inspect}, ema_id:"\
|
|
147
|
+
" #{@ema_id.inspect}, evse_id: #{@evse_id.inspect}, started_at: #{@started_at.inspect},"\
|
|
148
|
+
" stopped_at: #{@stopped_at.inspect}, session_state: #{@session_state.inspect},"\
|
|
149
|
+
" last_updated: #{@last_updated.inspect}>"
|
|
150
|
+
end
|
|
134
151
|
end
|
|
135
152
|
end
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
# shell_ev
|
|
2
2
|
#
|
|
3
|
-
# This file was automatically generated by APIMATIC
|
|
4
|
-
#
|
|
3
|
+
# This file was automatically generated by APIMATIC v3.0 (
|
|
4
|
+
# https://www.apimatic.io ).
|
|
5
5
|
|
|
6
6
|
require 'date'
|
|
7
7
|
module ShellEv
|
|
@@ -130,5 +130,22 @@ module ShellEv
|
|
|
130
130
|
def to_custom_stopped_at
|
|
131
131
|
DateTimeHelper.to_rfc3339(stopped_at)
|
|
132
132
|
end
|
|
133
|
+
|
|
134
|
+
# Provides a human-readable string representation of the object.
|
|
135
|
+
def to_s
|
|
136
|
+
class_name = self.class.name.split('::').last
|
|
137
|
+
"<#{class_name} id: #{@id}, user_id: #{@user_id}, ema_id: #{@ema_id}, evse_id: #{@evse_id},"\
|
|
138
|
+
" last_updated: #{@last_updated}, started_at: #{@started_at}, stopped_at: #{@stopped_at},"\
|
|
139
|
+
" session_state: #{@session_state}>"
|
|
140
|
+
end
|
|
141
|
+
|
|
142
|
+
# Provides a debugging-friendly string with detailed object information.
|
|
143
|
+
def inspect
|
|
144
|
+
class_name = self.class.name.split('::').last
|
|
145
|
+
"<#{class_name} id: #{@id.inspect}, user_id: #{@user_id.inspect}, ema_id:"\
|
|
146
|
+
" #{@ema_id.inspect}, evse_id: #{@evse_id.inspect}, last_updated: #{@last_updated.inspect},"\
|
|
147
|
+
" started_at: #{@started_at.inspect}, stopped_at: #{@stopped_at.inspect}, session_state:"\
|
|
148
|
+
" #{@session_state.inspect}>"
|
|
149
|
+
end
|
|
133
150
|
end
|
|
134
151
|
end
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
# shell_ev
|
|
2
|
+
#
|
|
3
|
+
# This file was automatically generated by APIMATIC v3.0 (
|
|
4
|
+
# https://www.apimatic.io ).
|
|
5
|
+
|
|
6
|
+
module ShellEv
|
|
7
|
+
# DayOfWeek.
|
|
8
|
+
class DayOfWeekEnum
|
|
9
|
+
DAY_OF_WEEK_ENUM = [
|
|
10
|
+
# TODO: Write general description for MONDAY
|
|
11
|
+
MONDAY = 'MONDAY'.freeze,
|
|
12
|
+
|
|
13
|
+
# TODO: Write general description for TUESDAY
|
|
14
|
+
TUESDAY = 'TUESDAY'.freeze,
|
|
15
|
+
|
|
16
|
+
# TODO: Write general description for WEDNESDAY
|
|
17
|
+
WEDNESDAY = 'WEDNESDAY'.freeze,
|
|
18
|
+
|
|
19
|
+
# TODO: Write general description for THURSDAY
|
|
20
|
+
THURSDAY = 'THURSDAY'.freeze,
|
|
21
|
+
|
|
22
|
+
# TODO: Write general description for FRIDAY
|
|
23
|
+
FRIDAY = 'FRIDAY'.freeze,
|
|
24
|
+
|
|
25
|
+
# TODO: Write general description for SATURDAY
|
|
26
|
+
SATURDAY = 'SATURDAY'.freeze,
|
|
27
|
+
|
|
28
|
+
# TODO: Write general description for SUNDAY
|
|
29
|
+
SUNDAY = 'SUNDAY'.freeze
|
|
30
|
+
].freeze
|
|
31
|
+
|
|
32
|
+
def self.validate(value)
|
|
33
|
+
return false if value.nil?
|
|
34
|
+
|
|
35
|
+
DAY_OF_WEEK_ENUM.include?(value)
|
|
36
|
+
end
|
|
37
|
+
|
|
38
|
+
def self.from_value(value, default_value = MONDAY)
|
|
39
|
+
return default_value if value.nil?
|
|
40
|
+
|
|
41
|
+
str = value.to_s.strip
|
|
42
|
+
|
|
43
|
+
case str.downcase
|
|
44
|
+
when 'monday' then MONDAY
|
|
45
|
+
when 'tuesday' then TUESDAY
|
|
46
|
+
when 'wednesday' then WEDNESDAY
|
|
47
|
+
when 'thursday' then THURSDAY
|
|
48
|
+
when 'friday' then FRIDAY
|
|
49
|
+
when 'saturday' then SATURDAY
|
|
50
|
+
when 'sunday' then SUNDAY
|
|
51
|
+
else
|
|
52
|
+
default_value
|
|
53
|
+
end
|
|
54
|
+
end
|
|
55
|
+
end
|
|
56
|
+
end
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
# shell_ev
|
|
2
2
|
#
|
|
3
|
-
# This file was automatically generated by APIMATIC
|
|
4
|
-
#
|
|
3
|
+
# This file was automatically generated by APIMATIC v3.0 (
|
|
4
|
+
# https://www.apimatic.io ).
|
|
5
5
|
|
|
6
6
|
module ShellEv
|
|
7
7
|
# Power Type used in this connector.
|
|
@@ -22,5 +22,19 @@ module ShellEv
|
|
|
22
22
|
|
|
23
23
|
ELECTRICAL_PROPERTIES_POWER_TYPE_ENUM.include?(value)
|
|
24
24
|
end
|
|
25
|
+
|
|
26
|
+
def self.from_value(value, default_value = AC1PHASE)
|
|
27
|
+
return default_value if value.nil?
|
|
28
|
+
|
|
29
|
+
str = value.to_s.strip
|
|
30
|
+
|
|
31
|
+
case str.downcase
|
|
32
|
+
when 'ac1phase' then AC1PHASE
|
|
33
|
+
when 'ac3phase' then AC3PHASE
|
|
34
|
+
when 'dc' then DC
|
|
35
|
+
else
|
|
36
|
+
default_value
|
|
37
|
+
end
|
|
38
|
+
end
|
|
25
39
|
end
|
|
26
40
|
end
|
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
# shell_ev
|
|
2
2
|
#
|
|
3
|
-
# This file was automatically generated by APIMATIC
|
|
4
|
-
#
|
|
3
|
+
# This file was automatically generated by APIMATIC v3.0 (
|
|
4
|
+
# https://www.apimatic.io ).
|
|
5
5
|
|
|
6
6
|
module ShellEv
|
|
7
7
|
# Electrical Properties of the Connector
|
|
8
|
-
class
|
|
8
|
+
class ElectricalPropertiesV2 < BaseModel
|
|
9
9
|
SKIP = Object.new
|
|
10
10
|
private_constant :SKIP
|
|
11
11
|
|
|
12
|
-
#
|
|
12
|
+
# Power Type used in this connector.
|
|
13
13
|
# @return [ElectricalPropertiesPowerTypeEnum]
|
|
14
14
|
attr_accessor :power_type
|
|
15
15
|
|
|
@@ -70,10 +70,24 @@ module ShellEv
|
|
|
70
70
|
hash.key?('maxElectricPower') ? hash['maxElectricPower'] : SKIP
|
|
71
71
|
|
|
72
72
|
# Create object from extracted values.
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
73
|
+
ElectricalPropertiesV2.new(power_type,
|
|
74
|
+
voltage,
|
|
75
|
+
amperage,
|
|
76
|
+
max_electric_power)
|
|
77
|
+
end
|
|
78
|
+
|
|
79
|
+
# Provides a human-readable string representation of the object.
|
|
80
|
+
def to_s
|
|
81
|
+
class_name = self.class.name.split('::').last
|
|
82
|
+
"<#{class_name} power_type: #{@power_type}, voltage: #{@voltage}, amperage: #{@amperage},"\
|
|
83
|
+
" max_electric_power: #{@max_electric_power}>"
|
|
84
|
+
end
|
|
85
|
+
|
|
86
|
+
# Provides a debugging-friendly string with detailed object information.
|
|
87
|
+
def inspect
|
|
88
|
+
class_name = self.class.name.split('::').last
|
|
89
|
+
"<#{class_name} power_type: #{@power_type.inspect}, voltage: #{@voltage.inspect}, amperage:"\
|
|
90
|
+
" #{@amperage.inspect}, max_electric_power: #{@max_electric_power.inspect}>"
|
|
77
91
|
end
|
|
78
92
|
end
|
|
79
93
|
end
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
# shell_ev
|
|
2
|
+
#
|
|
3
|
+
# This file was automatically generated by APIMATIC v3.0 (
|
|
4
|
+
# https://www.apimatic.io ).
|
|
5
|
+
|
|
6
|
+
module ShellEv
|
|
7
|
+
# evseStatus.
|
|
8
|
+
class EvseStatusEnum
|
|
9
|
+
EVSE_STATUS_ENUM = [
|
|
10
|
+
# TODO: Write general description for AVAILABLE
|
|
11
|
+
AVAILABLE = 'Available'.freeze,
|
|
12
|
+
|
|
13
|
+
# TODO: Write general description for OCCUPIED
|
|
14
|
+
OCCUPIED = 'Occupied'.freeze,
|
|
15
|
+
|
|
16
|
+
# TODO: Write general description for UNAVAILABLE
|
|
17
|
+
UNAVAILABLE = 'Unavailable'.freeze,
|
|
18
|
+
|
|
19
|
+
# TODO: Write general description for UNKNOWN
|
|
20
|
+
UNKNOWN = 'Unknown'.freeze
|
|
21
|
+
].freeze
|
|
22
|
+
|
|
23
|
+
def self.validate(value)
|
|
24
|
+
return false if value.nil?
|
|
25
|
+
|
|
26
|
+
EVSE_STATUS_ENUM.include?(value)
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
def self.from_value(value, default_value = AVAILABLE)
|
|
30
|
+
return default_value if value.nil?
|
|
31
|
+
|
|
32
|
+
str = value.to_s.strip
|
|
33
|
+
|
|
34
|
+
case str.downcase
|
|
35
|
+
when 'available' then AVAILABLE
|
|
36
|
+
when 'occupied' then OCCUPIED
|
|
37
|
+
when 'unavailable' then UNAVAILABLE
|
|
38
|
+
when 'unknown' then UNKNOWN
|
|
39
|
+
else
|
|
40
|
+
default_value
|
|
41
|
+
end
|
|
42
|
+
end
|
|
43
|
+
end
|
|
44
|
+
end
|