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.
Files changed (113) hide show
  1. checksums.yaml +4 -4
  2. data/LICENSE +1 -1
  3. data/README.md +91 -25
  4. data/bin/console +15 -0
  5. data/lib/shell_ev/api_helper.rb +2 -2
  6. data/lib/shell_ev/client.rb +15 -4
  7. data/lib/shell_ev/configuration.rb +88 -15
  8. data/lib/shell_ev/controllers/base_controller.rb +3 -9
  9. data/lib/shell_ev/controllers/charging_controller.rb +19 -18
  10. data/lib/shell_ev/controllers/locations_controller.rb +48 -50
  11. data/lib/shell_ev/controllers/o_auth_authorization_controller.rb +5 -5
  12. data/lib/shell_ev/exceptions/api_exception.rb +13 -2
  13. data/lib/shell_ev/exceptions/bad_request_exception.rb +20 -5
  14. data/lib/shell_ev/exceptions/internal_server_error_exception.rb +21 -5
  15. data/lib/shell_ev/exceptions/not_found_exception.rb +20 -5
  16. data/lib/shell_ev/exceptions/o_auth_provider_exception.rb +21 -5
  17. data/lib/shell_ev/exceptions/serviceunavailable_exception.rb +20 -5
  18. data/lib/shell_ev/exceptions/too_many_requests_exception.rb +20 -5
  19. data/lib/shell_ev/exceptions/unauthorized_exception.rb +20 -5
  20. data/lib/shell_ev/exceptions/v2_charge_session_retrieve404_error_exception.rb +67 -0
  21. data/lib/shell_ev/exceptions/v2_charge_session_start404_error_exception.rb +67 -0
  22. data/lib/shell_ev/exceptions/v2_charge_session_stop404_error_exception.rb +67 -0
  23. data/lib/shell_ev/http/auth/o_auth2.rb +18 -3
  24. data/lib/shell_ev/http/http_call_back.rb +2 -2
  25. data/lib/shell_ev/http/http_method_enum.rb +2 -2
  26. data/lib/shell_ev/http/http_request.rb +2 -2
  27. data/lib/shell_ev/http/http_response.rb +2 -2
  28. data/lib/shell_ev/http/proxy_settings.rb +22 -0
  29. data/lib/shell_ev/models/accessibility_status_enum.rb +17 -2
  30. data/lib/shell_ev/models/{accessibility.rb → accessibility_v2.rb} +17 -14
  31. data/lib/shell_ev/models/active_response200_json.rb +15 -2
  32. data/lib/shell_ev/models/active_response200_json_status_enum.rb +15 -2
  33. data/lib/shell_ev/models/address.rb +16 -2
  34. data/lib/shell_ev/models/bad_request_err_msg.rb +16 -2
  35. data/lib/shell_ev/models/base_model.rb +2 -2
  36. data/lib/shell_ev/models/charge_error.rb +14 -2
  37. data/lib/shell_ev/models/charge_retrieve_state.rb +14 -2
  38. data/lib/shell_ev/models/chargesession_start_body.rb +15 -2
  39. data/lib/shell_ev/models/connector_types_enum.rb +100 -0
  40. data/lib/shell_ev/models/connector_v2.rb +95 -0
  41. data/lib/shell_ev/models/connector_vo_connector_type_enum.rb +31 -2
  42. data/lib/shell_ev/models/connector_vo_updated_by_enum.rb +17 -2
  43. data/lib/shell_ev/models/coordinates.rb +14 -2
  44. data/lib/shell_ev/models/coordinates1.rb +81 -0
  45. data/lib/shell_ev/models/data_active.rb +19 -2
  46. data/lib/shell_ev/models/data_retrieve.rb +19 -2
  47. data/lib/shell_ev/models/day_of_week_enum.rb +56 -0
  48. data/lib/shell_ev/models/electrical_properties_power_type_enum.rb +16 -2
  49. data/lib/shell_ev/models/{electrical_properties.rb → electrical_properties_v2.rb} +22 -8
  50. data/lib/shell_ev/models/evse_status_enum.rb +44 -0
  51. data/lib/shell_ev/models/{evse_vo.rb → evse_v2.rb} +45 -38
  52. data/lib/shell_ev/models/evse_vo_authorization_methods_enum.rb +16 -2
  53. data/lib/shell_ev/models/evse_vo_status_enum.rb +17 -2
  54. data/lib/shell_ev/models/get_charge_session_retrieve_response200_json.rb +15 -2
  55. data/lib/shell_ev/models/get_charge_session_retrieve_response200_json_status_enum.rb +15 -2
  56. data/lib/shell_ev/models/get_ev_locations_authorization_methods_enum.rb +16 -2
  57. data/lib/shell_ev/models/get_ev_locations_connector_types_enum.rb +31 -2
  58. data/lib/shell_ev/models/get_ev_locations_evse_status_enum.rb +17 -2
  59. data/lib/shell_ev/models/inline_response202.rb +17 -6
  60. data/lib/shell_ev/models/inline_response2021.rb +14 -2
  61. data/lib/shell_ev/models/inline_response2021_status_enum.rb +15 -2
  62. data/lib/shell_ev/models/inline_response202_data.rb +14 -2
  63. data/lib/shell_ev/models/inline_response202_status_enum.rb +15 -2
  64. data/lib/shell_ev/models/internal_error_object.rb +15 -2
  65. data/lib/shell_ev/models/{location_respone_object.rb → location_respone_object_v2.rb} +61 -30
  66. data/lib/shell_ev/models/locations_markers_authorization_methods_enum.rb +16 -2
  67. data/lib/shell_ev/models/locations_markers_connector_types_enum.rb +31 -2
  68. data/lib/shell_ev/models/locations_markers_evse_status_enum.rb +17 -2
  69. data/lib/shell_ev/models/multi_location_marker.rb +22 -5
  70. data/lib/shell_ev/models/multi_location_marker_v2.rb +126 -0
  71. data/lib/shell_ev/models/nearby_locations_authorization_methods_enum.rb +16 -2
  72. data/lib/shell_ev/models/nearby_locations_connector_types_enum.rb +31 -2
  73. data/lib/shell_ev/models/nearby_locations_evse_status_enum.rb +17 -2
  74. data/lib/shell_ev/models/not_found_err_msg.rb +16 -2
  75. data/lib/shell_ev/models/o_auth_provider_error_enum.rb +19 -2
  76. data/lib/shell_ev/models/o_auth_token.rb +2 -2
  77. data/lib/shell_ev/models/opening_hours_object.rb +17 -3
  78. data/lib/shell_ev/models/opening_hours_object_week_day_enum.rb +20 -2
  79. data/lib/shell_ev/models/power_range.rb +68 -0
  80. data/lib/shell_ev/models/price_component.rb +86 -0
  81. data/lib/shell_ev/models/ratelimit_err_msg.rb +16 -2
  82. data/lib/shell_ev/models/{response.rb → response_v2.rb} +22 -9
  83. data/lib/shell_ev/models/restrictions.rb +183 -0
  84. data/lib/shell_ev/models/search_by_id_connector.rb +115 -0
  85. data/lib/shell_ev/models/search_by_id_evse.rb +145 -0
  86. data/lib/shell_ev/models/search_by_id_location_respone.rb +196 -0
  87. data/lib/shell_ev/models/search_by_id_response.rb +91 -0
  88. data/lib/shell_ev/models/serviceunavailable_err_msg.rb +16 -2
  89. data/lib/shell_ev/models/single_location_marker.rb +27 -6
  90. data/lib/shell_ev/models/single_location_marker_authorization_methods_items_enum.rb +16 -2
  91. data/lib/shell_ev/models/single_location_marker_response.rb +15 -2
  92. data/lib/shell_ev/models/single_location_marker_response_v2.rb +94 -0
  93. data/lib/shell_ev/models/single_location_marker_status_enum.rb +17 -2
  94. data/lib/shell_ev/models/single_location_marker_v2.rb +157 -0
  95. data/lib/shell_ev/models/tariff.rb +20 -3
  96. data/lib/shell_ev/models/tariff_alt_text.rb +68 -0
  97. data/lib/shell_ev/models/tariff_element.rb +80 -0
  98. data/lib/shell_ev/models/tariff_type_enum.rb +44 -0
  99. data/lib/shell_ev/models/tariff_v2.rb +226 -0
  100. data/lib/shell_ev/models/tariff_vo_updated_by_enum.rb +17 -2
  101. data/lib/shell_ev/models/type_enum.rb +44 -0
  102. data/lib/shell_ev/models/unauthorized_err_msg.rb +16 -2
  103. data/lib/shell_ev/utilities/date_time_helper.rb +2 -2
  104. data/lib/shell_ev/utilities/file_wrapper.rb +16 -4
  105. data/lib/shell_ev/utilities/union_type_lookup.rb +19 -2
  106. data/lib/shell_ev.rb +34 -10
  107. data/test/controllers/controller_test_base.rb +5 -10
  108. data/test/controllers/test_charging_controller.rb +7 -11
  109. data/test/controllers/test_locations_controller.rb +8 -11
  110. data/test/http_response_catcher.rb +3 -3
  111. metadata +38 -15
  112. data/lib/shell_ev/models/connector_vo.rb +0 -131
  113. 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 v2.0
4
- # ( https://apimatic.io ).
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 v2.0
4
- # ( https://apimatic.io ).
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 v2.0
4
- # ( https://apimatic.io ).
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 v2.0
4
- # ( https://apimatic.io ).
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 v2.0
4
- # ( https://apimatic.io ).
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 v2.0
4
- # ( https://apimatic.io ).
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 v2.0
4
- # ( https://apimatic.io ).
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 ElectricalProperties < BaseModel
8
+ class ElectricalPropertiesV2 < BaseModel
9
9
  SKIP = Object.new
10
10
  private_constant :SKIP
11
11
 
12
- # TODO: Write general description for this method
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
- ElectricalProperties.new(power_type,
74
- voltage,
75
- amperage,
76
- max_electric_power)
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