ev-recharge-sdk 1.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 +7 -0
- data/LICENSE +28 -0
- data/README.md +92 -0
- data/lib/shell_ev/api_helper.rb +10 -0
- data/lib/shell_ev/client.rb +77 -0
- data/lib/shell_ev/configuration.rb +110 -0
- data/lib/shell_ev/controllers/base_controller.rb +66 -0
- data/lib/shell_ev/controllers/charging_controller.rb +216 -0
- data/lib/shell_ev/controllers/locations_controller.rb +352 -0
- data/lib/shell_ev/controllers/o_auth_authorization_controller.rb +42 -0
- data/lib/shell_ev/exceptions/api_exception.rb +10 -0
- data/lib/shell_ev/exceptions/bad_request_exception.rb +37 -0
- data/lib/shell_ev/exceptions/http401_error_response_exception.rb +52 -0
- data/lib/shell_ev/exceptions/m400_error_response_error1_exception.rb +52 -0
- data/lib/shell_ev/exceptions/m401_error_response_error1_exception.rb +52 -0
- data/lib/shell_ev/exceptions/m404_error_response_error1_exception.rb +53 -0
- data/lib/shell_ev/exceptions/m405_error_response_error1_exception.rb +52 -0
- data/lib/shell_ev/exceptions/m429_error_response_error1_exception.rb +52 -0
- data/lib/shell_ev/exceptions/m500_error_response_error1_exception.rb +52 -0
- data/lib/shell_ev/exceptions/m503_error_response_error1_exception.rb +52 -0
- data/lib/shell_ev/exceptions/not_found_exception.rb +37 -0
- data/lib/shell_ev/exceptions/o_auth_provider_exception.rb +48 -0
- data/lib/shell_ev/exceptions/unauthorized_exception.rb +37 -0
- data/lib/shell_ev/http/auth/o_auth2.rb +90 -0
- data/lib/shell_ev/http/http_call_back.rb +10 -0
- data/lib/shell_ev/http/http_method_enum.rb +10 -0
- data/lib/shell_ev/http/http_request.rb +10 -0
- data/lib/shell_ev/http/http_response.rb +10 -0
- data/lib/shell_ev/models/accessibility.rb +60 -0
- data/lib/shell_ev/models/accessibility_status_enum.rb +29 -0
- data/lib/shell_ev/models/active_response200_json.rb +78 -0
- data/lib/shell_ev/models/active_response200_json_status_enum.rb +23 -0
- data/lib/shell_ev/models/address.rb +81 -0
- data/lib/shell_ev/models/base_model.rb +62 -0
- data/lib/shell_ev/models/chargesession_start_body.rb +59 -0
- data/lib/shell_ev/models/connector_vo.rb +134 -0
- data/lib/shell_ev/models/connector_vo_connector_type_enum.rb +71 -0
- data/lib/shell_ev/models/connector_vo_updated_by_enum.rb +29 -0
- data/lib/shell_ev/models/coordinates.rb +70 -0
- data/lib/shell_ev/models/data_active.rb +153 -0
- data/lib/shell_ev/models/data_active_session_code_enum.rb +44 -0
- data/lib/shell_ev/models/data_active_session_state_enum.rb +35 -0
- data/lib/shell_ev/models/data_retrieve.rb +152 -0
- data/lib/shell_ev/models/data_retrieve_session_code_enum.rb +44 -0
- data/lib/shell_ev/models/data_retrieve_session_state_enum.rb +35 -0
- data/lib/shell_ev/models/electrical_properties.rb +81 -0
- data/lib/shell_ev/models/electrical_properties_power_type_enum.rb +26 -0
- data/lib/shell_ev/models/env_enum.rb +23 -0
- data/lib/shell_ev/models/evse_vo.rb +143 -0
- data/lib/shell_ev/models/evse_vo_authorization_methods_enum.rb +26 -0
- data/lib/shell_ev/models/evse_vo_status_enum.rb +29 -0
- data/lib/shell_ev/models/get_charge_session_retrieve_response200_json.rb +78 -0
- data/lib/shell_ev/models/get_charge_session_retrieve_response200_json_status_enum.rb +23 -0
- data/lib/shell_ev/models/get_locations_list_authorization_methods_enum.rb +26 -0
- data/lib/shell_ev/models/get_locations_list_connector_types_enum.rb +71 -0
- data/lib/shell_ev/models/get_locations_list_evse_status_enum.rb +29 -0
- data/lib/shell_ev/models/get_markers_list_authorization_methods_enum.rb +26 -0
- data/lib/shell_ev/models/get_markers_list_connector_types_enum.rb +71 -0
- data/lib/shell_ev/models/get_markers_list_evse_status_enum.rb +29 -0
- data/lib/shell_ev/models/get_nearby_locations_authorization_methods_enum.rb +26 -0
- data/lib/shell_ev/models/get_nearby_locations_connector_types_enum.rb +71 -0
- data/lib/shell_ev/models/get_nearby_locations_evse_status_enum.rb +29 -0
- data/lib/shell_ev/models/inline_response202.rb +76 -0
- data/lib/shell_ev/models/inline_response2021.rb +58 -0
- data/lib/shell_ev/models/inline_response2021_status_enum.rb +23 -0
- data/lib/shell_ev/models/inline_response202_data.rb +48 -0
- data/lib/shell_ev/models/inline_response202_status_enum.rb +23 -0
- data/lib/shell_ev/models/location_respone_object.rb +172 -0
- data/lib/shell_ev/models/m400_error_response.rb +78 -0
- data/lib/shell_ev/models/m400_error_response_error.rb +80 -0
- data/lib/shell_ev/models/m401_error_response.rb +78 -0
- data/lib/shell_ev/models/m401_error_response_error.rb +80 -0
- data/lib/shell_ev/models/m404_error_response.rb +79 -0
- data/lib/shell_ev/models/m404_error_response_error.rb +80 -0
- data/lib/shell_ev/models/m405_error_response.rb +78 -0
- data/lib/shell_ev/models/m405_error_response_error.rb +80 -0
- data/lib/shell_ev/models/m429_error_response.rb +78 -0
- data/lib/shell_ev/models/m429_error_response_error.rb +80 -0
- data/lib/shell_ev/models/m500_error_response.rb +78 -0
- data/lib/shell_ev/models/m500_error_response_error.rb +80 -0
- data/lib/shell_ev/models/m503_error_response.rb +78 -0
- data/lib/shell_ev/models/m503_error_response_error.rb +80 -0
- data/lib/shell_ev/models/multi_location_marker.rb +126 -0
- data/lib/shell_ev/models/o_auth_provider_error_enum.rb +45 -0
- data/lib/shell_ev/models/o_auth_token.rb +100 -0
- data/lib/shell_ev/models/opening_hours_object.rb +70 -0
- data/lib/shell_ev/models/opening_hours_object_week_day_enum.rb +38 -0
- data/lib/shell_ev/models/response_base_status_enum.rb +26 -0
- data/lib/shell_ev/models/response_error401_all_of1.rb +57 -0
- data/lib/shell_ev/models/response_error401_all_of1_errors_items.rb +80 -0
- data/lib/shell_ev/models/single_location_marker.rb +157 -0
- data/lib/shell_ev/models/single_location_marker_authorization_methods_items_enum.rb +26 -0
- data/lib/shell_ev/models/single_location_marker_status_enum.rb +30 -0
- data/lib/shell_ev/models/stop_charge_session_request_body_json.rb +48 -0
- data/lib/shell_ev/models/success_response.rb +58 -0
- data/lib/shell_ev/models/tariff_vo.rb +111 -0
- data/lib/shell_ev/models/tariff_vo_updated_by_enum.rb +29 -0
- data/lib/shell_ev/utilities/date_time_helper.rb +11 -0
- data/lib/shell_ev/utilities/file_wrapper.rb +16 -0
- data/lib/shell_ev/utilities/union_type_lookup.rb +38 -0
- data/lib/shell_ev.rb +125 -0
- data/test/controllers/controller_test_base.rb +34 -0
- data/test/controllers/test_charging_controller.rb +78 -0
- data/test/http_response_catcher.rb +19 -0
- metadata +224 -0
@@ -0,0 +1,81 @@
|
|
1
|
+
# shell_ev
|
2
|
+
#
|
3
|
+
# This file was automatically generated by APIMATIC v2.0
|
4
|
+
# ( https://apimatic.io ).
|
5
|
+
|
6
|
+
module ShellEv
|
7
|
+
# Address of the Shell Recharge Location
|
8
|
+
class Address < BaseModel
|
9
|
+
SKIP = Object.new
|
10
|
+
private_constant :SKIP
|
11
|
+
|
12
|
+
# Street Name and Number of the Shell Recharge Location
|
13
|
+
# @return [String]
|
14
|
+
attr_accessor :street_and_number
|
15
|
+
|
16
|
+
# Postal Code of the Shell Recharge Location
|
17
|
+
# @return [String]
|
18
|
+
attr_accessor :postal_code
|
19
|
+
|
20
|
+
# City name of the Shell Recharge Location
|
21
|
+
# @return [String]
|
22
|
+
attr_accessor :city
|
23
|
+
|
24
|
+
# ISO 3166 Alpha-2 Country Code of the Shell Recharge Location
|
25
|
+
# @return [String]
|
26
|
+
attr_accessor :country
|
27
|
+
|
28
|
+
# A mapping from model property names to API property names.
|
29
|
+
def self.names
|
30
|
+
@_hash = {} if @_hash.nil?
|
31
|
+
@_hash['street_and_number'] = 'streetAndNumber'
|
32
|
+
@_hash['postal_code'] = 'postalCode'
|
33
|
+
@_hash['city'] = 'city'
|
34
|
+
@_hash['country'] = 'country'
|
35
|
+
@_hash
|
36
|
+
end
|
37
|
+
|
38
|
+
# An array for optional fields
|
39
|
+
def self.optionals
|
40
|
+
%w[
|
41
|
+
street_and_number
|
42
|
+
postal_code
|
43
|
+
city
|
44
|
+
country
|
45
|
+
]
|
46
|
+
end
|
47
|
+
|
48
|
+
# An array for nullable fields
|
49
|
+
def self.nullables
|
50
|
+
[]
|
51
|
+
end
|
52
|
+
|
53
|
+
def initialize(street_and_number = SKIP,
|
54
|
+
postal_code = SKIP,
|
55
|
+
city = SKIP,
|
56
|
+
country = SKIP)
|
57
|
+
@street_and_number = street_and_number unless street_and_number == SKIP
|
58
|
+
@postal_code = postal_code unless postal_code == SKIP
|
59
|
+
@city = city unless city == SKIP
|
60
|
+
@country = country unless country == 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
|
+
street_and_number =
|
69
|
+
hash.key?('streetAndNumber') ? hash['streetAndNumber'] : SKIP
|
70
|
+
postal_code = hash.key?('postalCode') ? hash['postalCode'] : SKIP
|
71
|
+
city = hash.key?('city') ? hash['city'] : SKIP
|
72
|
+
country = hash.key?('country') ? hash['country'] : SKIP
|
73
|
+
|
74
|
+
# Create object from extracted values.
|
75
|
+
Address.new(street_and_number,
|
76
|
+
postal_code,
|
77
|
+
city,
|
78
|
+
country)
|
79
|
+
end
|
80
|
+
end
|
81
|
+
end
|
@@ -0,0 +1,62 @@
|
|
1
|
+
# shell_ev
|
2
|
+
#
|
3
|
+
# This file was automatically generated by APIMATIC v2.0
|
4
|
+
# ( https://apimatic.io ).
|
5
|
+
|
6
|
+
module ShellEv
|
7
|
+
# Base model.
|
8
|
+
class BaseModel < CoreLibrary::BaseModel
|
9
|
+
# Returns a Hash representation of the current object.
|
10
|
+
def to_hash
|
11
|
+
# validating the model being serialized
|
12
|
+
self.class.validate(self) if self.class.respond_to?(:validate)
|
13
|
+
|
14
|
+
hash = {}
|
15
|
+
instance_variables.each do |name|
|
16
|
+
value = instance_variable_get(name)
|
17
|
+
name = name[1..]
|
18
|
+
key = self.class.names.key?(name) ? self.class.names[name] : name
|
19
|
+
optional_fields = self.class.optionals
|
20
|
+
nullable_fields = self.class.nullables
|
21
|
+
if value.nil?
|
22
|
+
next unless nullable_fields.include?(name)
|
23
|
+
|
24
|
+
if !optional_fields.include?(name) && !nullable_fields.include?(name)
|
25
|
+
raise ArgumentError,
|
26
|
+
"`#{name}` cannot be nil in `#{self.class}`. Please specify a valid value."
|
27
|
+
end
|
28
|
+
end
|
29
|
+
|
30
|
+
hash[key] = nil
|
31
|
+
unless value.nil?
|
32
|
+
if respond_to?("to_custom_#{name}")
|
33
|
+
if (value.instance_of? Array) || (value.instance_of? Hash)
|
34
|
+
params = [hash, key]
|
35
|
+
hash[key] = send("to_custom_#{name}", *params)
|
36
|
+
else
|
37
|
+
hash[key] = send("to_custom_#{name}")
|
38
|
+
end
|
39
|
+
elsif respond_to?("to_union_type_#{name}")
|
40
|
+
hash[key] = send("to_union_type_#{name}")
|
41
|
+
elsif value.instance_of? Array
|
42
|
+
hash[key] = value.map { |v| v.is_a?(BaseModel) ? v.to_hash : v }
|
43
|
+
elsif value.instance_of? Hash
|
44
|
+
hash[key] = {}
|
45
|
+
value.each do |k, v|
|
46
|
+
hash[key][k] = v.is_a?(BaseModel) ? v.to_hash : v
|
47
|
+
end
|
48
|
+
else
|
49
|
+
hash[key] = value.is_a?(BaseModel) ? value.to_hash : value
|
50
|
+
end
|
51
|
+
end
|
52
|
+
end
|
53
|
+
hash
|
54
|
+
end
|
55
|
+
|
56
|
+
# Returns a JSON representation of the curent object.
|
57
|
+
def to_json(options = {})
|
58
|
+
hash = to_hash
|
59
|
+
hash.to_json(options)
|
60
|
+
end
|
61
|
+
end
|
62
|
+
end
|
@@ -0,0 +1,59 @@
|
|
1
|
+
# shell_ev
|
2
|
+
#
|
3
|
+
# This file was automatically generated by APIMATIC v2.0
|
4
|
+
# ( https://apimatic.io ).
|
5
|
+
|
6
|
+
module ShellEv
|
7
|
+
# ChargesessionStartBody Model.
|
8
|
+
class ChargesessionStartBody < BaseModel
|
9
|
+
SKIP = Object.new
|
10
|
+
private_constant :SKIP
|
11
|
+
|
12
|
+
# The EV Charge Number which can be found on the back of the Shell EV Card
|
13
|
+
# @return [String]
|
14
|
+
attr_accessor :ev_charge_number
|
15
|
+
|
16
|
+
# Standard EVSE (Electric Vehicle Supply Equipment) Id identifier
|
17
|
+
# (ISO-IEC-15118)
|
18
|
+
# @return [String]
|
19
|
+
attr_accessor :evse_id
|
20
|
+
|
21
|
+
# A mapping from model property names to API property names.
|
22
|
+
def self.names
|
23
|
+
@_hash = {} if @_hash.nil?
|
24
|
+
@_hash['ev_charge_number'] = 'EvChargeNumber'
|
25
|
+
@_hash['evse_id'] = 'EvseId'
|
26
|
+
@_hash
|
27
|
+
end
|
28
|
+
|
29
|
+
# An array for optional fields
|
30
|
+
def self.optionals
|
31
|
+
[]
|
32
|
+
end
|
33
|
+
|
34
|
+
# An array for nullable fields
|
35
|
+
def self.nullables
|
36
|
+
[]
|
37
|
+
end
|
38
|
+
|
39
|
+
def initialize(ev_charge_number = nil,
|
40
|
+
evse_id = nil)
|
41
|
+
@ev_charge_number = ev_charge_number
|
42
|
+
@evse_id = evse_id
|
43
|
+
end
|
44
|
+
|
45
|
+
# Creates an instance of the object from a hash.
|
46
|
+
def self.from_hash(hash)
|
47
|
+
return nil unless hash
|
48
|
+
|
49
|
+
# Extract variables from the hash.
|
50
|
+
ev_charge_number =
|
51
|
+
hash.key?('EvChargeNumber') ? hash['EvChargeNumber'] : nil
|
52
|
+
evse_id = hash.key?('EvseId') ? hash['EvseId'] : nil
|
53
|
+
|
54
|
+
# Create object from extracted values.
|
55
|
+
ChargesessionStartBody.new(ev_charge_number,
|
56
|
+
evse_id)
|
57
|
+
end
|
58
|
+
end
|
59
|
+
end
|
@@ -0,0 +1,134 @@
|
|
1
|
+
# shell_ev
|
2
|
+
#
|
3
|
+
# This file was automatically generated by APIMATIC v2.0
|
4
|
+
# ( https://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 ConnectorVO < BaseModel
|
10
|
+
SKIP = Object.new
|
11
|
+
private_constant :SKIP
|
12
|
+
|
13
|
+
# Internal identifier used to refer to this Connector
|
14
|
+
# @return [Integer]
|
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 [ElectricalProperties]
|
28
|
+
attr_accessor :electrical_properties
|
29
|
+
|
30
|
+
# Indicates whether Connector has a fixed cable attached. False by default
|
31
|
+
# (not sent in this case)
|
32
|
+
# @return [TrueClass | FalseClass]
|
33
|
+
attr_accessor :fixed_cable
|
34
|
+
|
35
|
+
# Tariff details for charging on this Connector
|
36
|
+
# @return [TariffVO]
|
37
|
+
attr_accessor :tariff
|
38
|
+
|
39
|
+
# ISO8601-compliant UTC datetime of the last update of the Connectors's data
|
40
|
+
# @return [String]
|
41
|
+
attr_accessor :updated
|
42
|
+
|
43
|
+
# Source of the last update
|
44
|
+
# @return [ConnectorVOUpdatedByEnum]
|
45
|
+
attr_accessor :updated_by
|
46
|
+
|
47
|
+
# optional ISO8601-compliant UTC deletion timestamp of the connector
|
48
|
+
# @return [String]
|
49
|
+
attr_accessor :deleted
|
50
|
+
|
51
|
+
# A mapping from model property names to API property names.
|
52
|
+
def self.names
|
53
|
+
@_hash = {} if @_hash.nil?
|
54
|
+
@_hash['uid'] = 'uid'
|
55
|
+
@_hash['external_id'] = 'externalId'
|
56
|
+
@_hash['connector_type'] = 'connectorType'
|
57
|
+
@_hash['electrical_properties'] = 'electricalProperties'
|
58
|
+
@_hash['fixed_cable'] = 'fixedCable'
|
59
|
+
@_hash['tariff'] = 'tariff'
|
60
|
+
@_hash['updated'] = 'updated'
|
61
|
+
@_hash['updated_by'] = 'updatedBy'
|
62
|
+
@_hash['deleted'] = 'deleted'
|
63
|
+
@_hash
|
64
|
+
end
|
65
|
+
|
66
|
+
# An array for optional fields
|
67
|
+
def self.optionals
|
68
|
+
%w[
|
69
|
+
uid
|
70
|
+
external_id
|
71
|
+
connector_type
|
72
|
+
electrical_properties
|
73
|
+
fixed_cable
|
74
|
+
tariff
|
75
|
+
updated
|
76
|
+
updated_by
|
77
|
+
deleted
|
78
|
+
]
|
79
|
+
end
|
80
|
+
|
81
|
+
# An array for nullable fields
|
82
|
+
def self.nullables
|
83
|
+
[]
|
84
|
+
end
|
85
|
+
|
86
|
+
def initialize(uid = SKIP,
|
87
|
+
external_id = SKIP,
|
88
|
+
connector_type = SKIP,
|
89
|
+
electrical_properties = SKIP,
|
90
|
+
fixed_cable = SKIP,
|
91
|
+
tariff = SKIP,
|
92
|
+
updated = SKIP,
|
93
|
+
updated_by = SKIP,
|
94
|
+
deleted = SKIP)
|
95
|
+
@uid = uid unless uid == SKIP
|
96
|
+
@external_id = external_id unless external_id == SKIP
|
97
|
+
@connector_type = connector_type unless connector_type == SKIP
|
98
|
+
@electrical_properties = electrical_properties unless electrical_properties == SKIP
|
99
|
+
@fixed_cable = fixed_cable unless fixed_cable == SKIP
|
100
|
+
@tariff = tariff unless tariff == SKIP
|
101
|
+
@updated = updated unless updated == SKIP
|
102
|
+
@updated_by = updated_by unless updated_by == SKIP
|
103
|
+
@deleted = deleted unless deleted == SKIP
|
104
|
+
end
|
105
|
+
|
106
|
+
# Creates an instance of the object from a hash.
|
107
|
+
def self.from_hash(hash)
|
108
|
+
return nil unless hash
|
109
|
+
|
110
|
+
# Extract variables from the hash.
|
111
|
+
uid = hash.key?('uid') ? hash['uid'] : SKIP
|
112
|
+
external_id = hash.key?('externalId') ? hash['externalId'] : SKIP
|
113
|
+
connector_type = hash.key?('connectorType') ? hash['connectorType'] : SKIP
|
114
|
+
electrical_properties = ElectricalProperties.from_hash(hash['electricalProperties']) if
|
115
|
+
hash['electricalProperties']
|
116
|
+
fixed_cable = hash.key?('fixedCable') ? hash['fixedCable'] : SKIP
|
117
|
+
tariff = TariffVO.from_hash(hash['tariff']) if hash['tariff']
|
118
|
+
updated = hash.key?('updated') ? hash['updated'] : SKIP
|
119
|
+
updated_by = hash.key?('updatedBy') ? hash['updatedBy'] : SKIP
|
120
|
+
deleted = hash.key?('deleted') ? hash['deleted'] : SKIP
|
121
|
+
|
122
|
+
# Create object from extracted values.
|
123
|
+
ConnectorVO.new(uid,
|
124
|
+
external_id,
|
125
|
+
connector_type,
|
126
|
+
electrical_properties,
|
127
|
+
fixed_cable,
|
128
|
+
tariff,
|
129
|
+
updated,
|
130
|
+
updated_by,
|
131
|
+
deleted)
|
132
|
+
end
|
133
|
+
end
|
134
|
+
end
|
@@ -0,0 +1,71 @@
|
|
1
|
+
# shell_ev
|
2
|
+
#
|
3
|
+
# This file was automatically generated by APIMATIC v2.0
|
4
|
+
# ( https://apimatic.io ).
|
5
|
+
|
6
|
+
module ShellEv
|
7
|
+
# Type of the connector in the EVSE unit.
|
8
|
+
class ConnectorVOConnectorTypeEnum
|
9
|
+
CONNECTOR_VO_CONNECTOR_TYPE_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_VO_CONNECTOR_TYPE_ENUM.include?(value)
|
69
|
+
end
|
70
|
+
end
|
71
|
+
end
|
@@ -0,0 +1,29 @@
|
|
1
|
+
# shell_ev
|
2
|
+
#
|
3
|
+
# This file was automatically generated by APIMATIC v2.0
|
4
|
+
# ( https://apimatic.io ).
|
5
|
+
|
6
|
+
module ShellEv
|
7
|
+
# Source of the last update
|
8
|
+
class ConnectorVOUpdatedByEnum
|
9
|
+
CONNECTOR_VO_UPDATED_BY_ENUM = [
|
10
|
+
# TODO: Write general description for FEED
|
11
|
+
FEED = 'Feed'.freeze,
|
12
|
+
|
13
|
+
# TODO: Write general description for ADMIN
|
14
|
+
ADMIN = 'Admin'.freeze,
|
15
|
+
|
16
|
+
# TODO: Write general description for TARIFFSERVICE
|
17
|
+
TARIFFSERVICE = 'TariffService'.freeze,
|
18
|
+
|
19
|
+
# TODO: Write general description for DEFAULTS
|
20
|
+
DEFAULTS = 'Defaults'.freeze
|
21
|
+
].freeze
|
22
|
+
|
23
|
+
def self.validate(value)
|
24
|
+
return false if value.nil?
|
25
|
+
|
26
|
+
CONNECTOR_VO_UPDATED_BY_ENUM.include?(value)
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
@@ -0,0 +1,70 @@
|
|
1
|
+
# shell_ev
|
2
|
+
#
|
3
|
+
# This file was automatically generated by APIMATIC v2.0
|
4
|
+
# ( https://apimatic.io ).
|
5
|
+
|
6
|
+
module ShellEv
|
7
|
+
# Coordinates of the Shell Recharge Site Location
|
8
|
+
class Coordinates < 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,
|
42
|
+
longitude = SKIP)
|
43
|
+
@latitude = latitude unless latitude == SKIP
|
44
|
+
@longitude = longitude unless longitude == SKIP
|
45
|
+
end
|
46
|
+
|
47
|
+
# Creates an instance of the object from a hash.
|
48
|
+
def self.from_hash(hash)
|
49
|
+
return nil unless hash
|
50
|
+
|
51
|
+
# Extract variables from the hash.
|
52
|
+
latitude = hash.key?('latitude') ? hash['latitude'] : SKIP
|
53
|
+
longitude = hash.key?('longitude') ? hash['longitude'] : SKIP
|
54
|
+
|
55
|
+
# Create object from extracted values.
|
56
|
+
Coordinates.new(latitude,
|
57
|
+
longitude)
|
58
|
+
end
|
59
|
+
|
60
|
+
# Validates an instance of the object from a given value.
|
61
|
+
# @param [Coordinates | Hash] The value against the validation is performed.
|
62
|
+
def self.validate(value)
|
63
|
+
return true if value.instance_of? self
|
64
|
+
|
65
|
+
return false unless value.instance_of? Hash
|
66
|
+
|
67
|
+
true
|
68
|
+
end
|
69
|
+
end
|
70
|
+
end
|
@@ -0,0 +1,153 @@
|
|
1
|
+
# shell_ev
|
2
|
+
#
|
3
|
+
# This file was automatically generated by APIMATIC v2.0
|
4
|
+
# ( https://apimatic.io ).
|
5
|
+
|
6
|
+
require 'date'
|
7
|
+
module ShellEv
|
8
|
+
# DataActive Model.
|
9
|
+
class DataActive < BaseModel
|
10
|
+
SKIP = Object.new
|
11
|
+
private_constant :SKIP
|
12
|
+
|
13
|
+
# Id of the session
|
14
|
+
# @return [UUID | String]
|
15
|
+
attr_accessor :id
|
16
|
+
|
17
|
+
# Id of the user that started the session
|
18
|
+
# @return [String]
|
19
|
+
attr_accessor :user_id
|
20
|
+
|
21
|
+
# Id of the evse that the user is charging
|
22
|
+
# @return [String]
|
23
|
+
attr_accessor :ema_id
|
24
|
+
|
25
|
+
# Electric Vehicle Supply Equipment Identifier. An EVSEID identifies a
|
26
|
+
# Charging Point.
|
27
|
+
# @return [String]
|
28
|
+
attr_accessor :evse_id
|
29
|
+
|
30
|
+
# When the session is started
|
31
|
+
# @return [DateTime]
|
32
|
+
attr_accessor :started_at
|
33
|
+
|
34
|
+
# When the session is stopped
|
35
|
+
# @return [DateTime]
|
36
|
+
attr_accessor :stopped_at
|
37
|
+
|
38
|
+
# Describes the session state
|
39
|
+
# @return [DataActiveSessionStateEnum]
|
40
|
+
attr_accessor :session_state
|
41
|
+
|
42
|
+
# Session code e.g InternalError
|
43
|
+
# @return [DataActiveSessionCodeEnum]
|
44
|
+
attr_accessor :session_code
|
45
|
+
|
46
|
+
# Session message
|
47
|
+
# @return [String]
|
48
|
+
attr_accessor :session_message
|
49
|
+
|
50
|
+
# A mapping from model property names to API property names.
|
51
|
+
def self.names
|
52
|
+
@_hash = {} if @_hash.nil?
|
53
|
+
@_hash['id'] = 'Id'
|
54
|
+
@_hash['user_id'] = 'UserId'
|
55
|
+
@_hash['ema_id'] = 'EmaId'
|
56
|
+
@_hash['evse_id'] = 'EvseId'
|
57
|
+
@_hash['started_at'] = 'StartedAt'
|
58
|
+
@_hash['stopped_at'] = 'StoppedAt'
|
59
|
+
@_hash['session_state'] = 'SessionState'
|
60
|
+
@_hash['session_code'] = 'SessionCode'
|
61
|
+
@_hash['session_message'] = 'SessionMessage'
|
62
|
+
@_hash
|
63
|
+
end
|
64
|
+
|
65
|
+
# An array for optional fields
|
66
|
+
def self.optionals
|
67
|
+
%w[
|
68
|
+
id
|
69
|
+
user_id
|
70
|
+
ema_id
|
71
|
+
evse_id
|
72
|
+
started_at
|
73
|
+
stopped_at
|
74
|
+
session_state
|
75
|
+
session_code
|
76
|
+
session_message
|
77
|
+
]
|
78
|
+
end
|
79
|
+
|
80
|
+
# An array for nullable fields
|
81
|
+
def self.nullables
|
82
|
+
%w[
|
83
|
+
stopped_at
|
84
|
+
session_code
|
85
|
+
session_message
|
86
|
+
]
|
87
|
+
end
|
88
|
+
|
89
|
+
def initialize(id = SKIP,
|
90
|
+
user_id = SKIP,
|
91
|
+
ema_id = SKIP,
|
92
|
+
evse_id = SKIP,
|
93
|
+
started_at = SKIP,
|
94
|
+
stopped_at = SKIP,
|
95
|
+
session_state = SKIP,
|
96
|
+
session_code = SKIP,
|
97
|
+
session_message = SKIP)
|
98
|
+
@id = id unless id == SKIP
|
99
|
+
@user_id = user_id unless user_id == SKIP
|
100
|
+
@ema_id = ema_id unless ema_id == SKIP
|
101
|
+
@evse_id = evse_id unless evse_id == SKIP
|
102
|
+
@started_at = started_at unless started_at == SKIP
|
103
|
+
@stopped_at = stopped_at unless stopped_at == SKIP
|
104
|
+
@session_state = session_state unless session_state == SKIP
|
105
|
+
@session_code = session_code unless session_code == SKIP
|
106
|
+
@session_message = session_message unless session_message == SKIP
|
107
|
+
end
|
108
|
+
|
109
|
+
# Creates an instance of the object from a hash.
|
110
|
+
def self.from_hash(hash)
|
111
|
+
return nil unless hash
|
112
|
+
|
113
|
+
# Extract variables from the hash.
|
114
|
+
id = hash.key?('Id') ? hash['Id'] : SKIP
|
115
|
+
user_id = hash.key?('UserId') ? hash['UserId'] : SKIP
|
116
|
+
ema_id = hash.key?('EmaId') ? hash['EmaId'] : SKIP
|
117
|
+
evse_id = hash.key?('EvseId') ? hash['EvseId'] : SKIP
|
118
|
+
started_at = if hash.key?('StartedAt')
|
119
|
+
(DateTimeHelper.from_rfc3339(hash['StartedAt']) if hash['StartedAt'])
|
120
|
+
else
|
121
|
+
SKIP
|
122
|
+
end
|
123
|
+
stopped_at = if hash.key?('StoppedAt')
|
124
|
+
(DateTimeHelper.from_rfc3339(hash['StoppedAt']) if hash['StoppedAt'])
|
125
|
+
else
|
126
|
+
SKIP
|
127
|
+
end
|
128
|
+
session_state = hash.key?('SessionState') ? hash['SessionState'] : SKIP
|
129
|
+
session_code = hash.key?('SessionCode') ? hash['SessionCode'] : SKIP
|
130
|
+
session_message =
|
131
|
+
hash.key?('SessionMessage') ? hash['SessionMessage'] : SKIP
|
132
|
+
|
133
|
+
# Create object from extracted values.
|
134
|
+
DataActive.new(id,
|
135
|
+
user_id,
|
136
|
+
ema_id,
|
137
|
+
evse_id,
|
138
|
+
started_at,
|
139
|
+
stopped_at,
|
140
|
+
session_state,
|
141
|
+
session_code,
|
142
|
+
session_message)
|
143
|
+
end
|
144
|
+
|
145
|
+
def to_custom_started_at
|
146
|
+
DateTimeHelper.to_rfc3339(started_at)
|
147
|
+
end
|
148
|
+
|
149
|
+
def to_custom_stopped_at
|
150
|
+
DateTimeHelper.to_rfc3339(stopped_at)
|
151
|
+
end
|
152
|
+
end
|
153
|
+
end
|
@@ -0,0 +1,44 @@
|
|
1
|
+
# shell_ev
|
2
|
+
#
|
3
|
+
# This file was automatically generated by APIMATIC v2.0
|
4
|
+
# ( https://apimatic.io ).
|
5
|
+
|
6
|
+
module ShellEv
|
7
|
+
# Session code e.g InternalError
|
8
|
+
class DataActiveSessionCodeEnum
|
9
|
+
DATA_ACTIVE_SESSION_CODE_ENUM = [
|
10
|
+
# TODO: Write general description for INTERNALERROR
|
11
|
+
INTERNALERROR = 'InternalError'.freeze,
|
12
|
+
|
13
|
+
# TODO: Write general description for SERVICEUNAVAILABLE
|
14
|
+
SERVICEUNAVAILABLE = 'ServiceUnavailable'.freeze,
|
15
|
+
|
16
|
+
# TODO: Write general description for CHARGETOKENNOTSUPPORTED
|
17
|
+
CHARGETOKENNOTSUPPORTED = 'ChargeTokenNotSupported'.freeze,
|
18
|
+
|
19
|
+
# TODO: Write general description for SESSIONINVALID
|
20
|
+
SESSIONINVALID = 'SessionInvalid'.freeze,
|
21
|
+
|
22
|
+
# TODO: Write general description for EVNOTCONNECTEDTOEVSE
|
23
|
+
EVNOTCONNECTEDTOEVSE = 'EvNotConnectedToEvse'.freeze,
|
24
|
+
|
25
|
+
# TODO: Write general description for EVSEINUSE
|
26
|
+
EVSEINUSE = 'EvseInUse'.freeze,
|
27
|
+
|
28
|
+
# TODO: Write general description for EVSEOUTOFSERVICE
|
29
|
+
EVSEOUTOFSERVICE = 'EvseOutOfService'.freeze,
|
30
|
+
|
31
|
+
# TODO: Write general description for EVSENOTFOUND
|
32
|
+
EVSENOTFOUND = 'EvseNotFound'.freeze,
|
33
|
+
|
34
|
+
# TODO: Write general description for EVSENOTSUPPORTED
|
35
|
+
EVSENOTSUPPORTED = 'EvseNotSupported'.freeze
|
36
|
+
].freeze
|
37
|
+
|
38
|
+
def self.validate(value)
|
39
|
+
return false if value.nil?
|
40
|
+
|
41
|
+
DATA_ACTIVE_SESSION_CODE_ENUM.include?(value)
|
42
|
+
end
|
43
|
+
end
|
44
|
+
end
|