ev-recharge-sdk 1.0.0
Sign up to get free protection for your applications and to get access to all the features.
- 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
|