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,126 @@
|
|
1
|
+
# shell_ev
|
2
|
+
#
|
3
|
+
# This file was automatically generated by APIMATIC v2.0
|
4
|
+
# ( https://apimatic.io ).
|
5
|
+
|
6
|
+
module ShellEv
|
7
|
+
# A Marker is a place on the map that represent multiple Locations at the same
|
8
|
+
# spot
|
9
|
+
class MultiLocationMarker < BaseModel
|
10
|
+
SKIP = Object.new
|
11
|
+
private_constant :SKIP
|
12
|
+
|
13
|
+
# Identifies the marker type. If it's a `MultiLocationMarker`, then the
|
14
|
+
# value is `MultiLocation`
|
15
|
+
# @return [String]
|
16
|
+
attr_accessor :marker_type
|
17
|
+
|
18
|
+
# Uniquely identifies the marker object
|
19
|
+
# @return [String]
|
20
|
+
attr_accessor :unique_key
|
21
|
+
|
22
|
+
# Coordinates of the Shell Recharge Site Location
|
23
|
+
# @return [Coordinates]
|
24
|
+
attr_accessor :coordinates
|
25
|
+
|
26
|
+
# Number of Locations that this Marker represents in the given set of bounds
|
27
|
+
# @return [Float]
|
28
|
+
attr_accessor :location_count
|
29
|
+
|
30
|
+
# Total number of Evses in Locations that this Marker represents
|
31
|
+
# @return [Float]
|
32
|
+
attr_accessor :evse_count
|
33
|
+
|
34
|
+
# Maximum power in kW across all locations grouped in this marker
|
35
|
+
# (disregarding availability)
|
36
|
+
# @return [Float]
|
37
|
+
attr_accessor :max_power
|
38
|
+
|
39
|
+
# GeoHash of marker coordinates
|
40
|
+
# @return [String]
|
41
|
+
attr_accessor :geo_hash
|
42
|
+
|
43
|
+
# A mapping from model property names to API property names.
|
44
|
+
def self.names
|
45
|
+
@_hash = {} if @_hash.nil?
|
46
|
+
@_hash['marker_type'] = 'markerType'
|
47
|
+
@_hash['unique_key'] = 'uniqueKey'
|
48
|
+
@_hash['coordinates'] = 'coordinates'
|
49
|
+
@_hash['location_count'] = 'locationCount'
|
50
|
+
@_hash['evse_count'] = 'evseCount'
|
51
|
+
@_hash['max_power'] = 'maxPower'
|
52
|
+
@_hash['geo_hash'] = 'geoHash'
|
53
|
+
@_hash
|
54
|
+
end
|
55
|
+
|
56
|
+
# An array for optional fields
|
57
|
+
def self.optionals
|
58
|
+
%w[
|
59
|
+
unique_key
|
60
|
+
coordinates
|
61
|
+
location_count
|
62
|
+
evse_count
|
63
|
+
max_power
|
64
|
+
geo_hash
|
65
|
+
]
|
66
|
+
end
|
67
|
+
|
68
|
+
# An array for nullable fields
|
69
|
+
def self.nullables
|
70
|
+
[]
|
71
|
+
end
|
72
|
+
|
73
|
+
def initialize(marker_type = nil,
|
74
|
+
unique_key = SKIP,
|
75
|
+
coordinates = SKIP,
|
76
|
+
location_count = SKIP,
|
77
|
+
evse_count = SKIP,
|
78
|
+
max_power = SKIP,
|
79
|
+
geo_hash = SKIP)
|
80
|
+
@marker_type = marker_type
|
81
|
+
@unique_key = unique_key unless unique_key == SKIP
|
82
|
+
@coordinates = coordinates unless coordinates == SKIP
|
83
|
+
@location_count = location_count unless location_count == SKIP
|
84
|
+
@evse_count = evse_count unless evse_count == SKIP
|
85
|
+
@max_power = max_power unless max_power == SKIP
|
86
|
+
@geo_hash = geo_hash unless geo_hash == SKIP
|
87
|
+
end
|
88
|
+
|
89
|
+
# Creates an instance of the object from a hash.
|
90
|
+
def self.from_hash(hash)
|
91
|
+
return nil unless hash
|
92
|
+
|
93
|
+
# Extract variables from the hash.
|
94
|
+
marker_type = hash.key?('markerType') ? hash['markerType'] : nil
|
95
|
+
unique_key = hash.key?('uniqueKey') ? hash['uniqueKey'] : SKIP
|
96
|
+
coordinates = Coordinates.from_hash(hash['coordinates']) if hash['coordinates']
|
97
|
+
location_count = hash.key?('locationCount') ? hash['locationCount'] : SKIP
|
98
|
+
evse_count = hash.key?('evseCount') ? hash['evseCount'] : SKIP
|
99
|
+
max_power = hash.key?('maxPower') ? hash['maxPower'] : SKIP
|
100
|
+
geo_hash = hash.key?('geoHash') ? hash['geoHash'] : SKIP
|
101
|
+
|
102
|
+
# Create object from extracted values.
|
103
|
+
MultiLocationMarker.new(marker_type,
|
104
|
+
unique_key,
|
105
|
+
coordinates,
|
106
|
+
location_count,
|
107
|
+
evse_count,
|
108
|
+
max_power,
|
109
|
+
geo_hash)
|
110
|
+
end
|
111
|
+
|
112
|
+
# Validates an instance of the object from a given value.
|
113
|
+
# @param [MultiLocationMarker | Hash] The value against the validation is performed.
|
114
|
+
def self.validate(value)
|
115
|
+
if value.instance_of? self
|
116
|
+
return APIHelper.valid_type?(value.marker_type,
|
117
|
+
->(val) { val.instance_of? String })
|
118
|
+
end
|
119
|
+
|
120
|
+
return false unless value.instance_of? Hash
|
121
|
+
|
122
|
+
APIHelper.valid_type?(value['markerType'],
|
123
|
+
->(val) { val.instance_of? String })
|
124
|
+
end
|
125
|
+
end
|
126
|
+
end
|
@@ -0,0 +1,45 @@
|
|
1
|
+
# shell_ev
|
2
|
+
#
|
3
|
+
# This file was automatically generated by APIMATIC v2.0
|
4
|
+
# ( https://apimatic.io ).
|
5
|
+
|
6
|
+
module ShellEv
|
7
|
+
# OAuth 2 Authorization error codes
|
8
|
+
class OAuthProviderErrorEnum
|
9
|
+
O_AUTH_PROVIDER_ERROR_ENUM = [
|
10
|
+
# The request is missing a required parameter, includes an unsupported
|
11
|
+
# parameter value (other than grant type), repeats a parameter, includes
|
12
|
+
# multiple credentials, utilizes more than one mechanism for
|
13
|
+
# authenticating the client, or is otherwise malformed.
|
14
|
+
INVALID_REQUEST = 'invalid_request'.freeze,
|
15
|
+
|
16
|
+
# Client authentication failed (e.g., unknown client, no client
|
17
|
+
# authentication included, or unsupported authentication method).
|
18
|
+
INVALID_CLIENT = 'invalid_client'.freeze,
|
19
|
+
|
20
|
+
# The provided authorization grant (e.g., authorization code, resource
|
21
|
+
# owner credentials) or refresh token is invalid, expired, revoked, does
|
22
|
+
# not match the redirection URI used in the authorization request, or was
|
23
|
+
# issued to another client.
|
24
|
+
INVALID_GRANT = 'invalid_grant'.freeze,
|
25
|
+
|
26
|
+
# The authenticated client is not authorized to use this authorization
|
27
|
+
# grant type.
|
28
|
+
UNAUTHORIZED_CLIENT = 'unauthorized_client'.freeze,
|
29
|
+
|
30
|
+
# The authorization grant type is not supported by the authorization
|
31
|
+
# server.
|
32
|
+
UNSUPPORTED_GRANT_TYPE = 'unsupported_grant_type'.freeze,
|
33
|
+
|
34
|
+
# The requested scope is invalid, unknown, malformed, or exceeds the scope
|
35
|
+
# granted by the resource owner.
|
36
|
+
INVALID_SCOPE = 'invalid_scope'.freeze
|
37
|
+
].freeze
|
38
|
+
|
39
|
+
def self.validate(value)
|
40
|
+
return false if value.nil?
|
41
|
+
|
42
|
+
O_AUTH_PROVIDER_ERROR_ENUM.include?(value)
|
43
|
+
end
|
44
|
+
end
|
45
|
+
end
|
@@ -0,0 +1,100 @@
|
|
1
|
+
# shell_ev
|
2
|
+
#
|
3
|
+
# This file was automatically generated by APIMATIC v2.0
|
4
|
+
# ( https://apimatic.io ).
|
5
|
+
|
6
|
+
module ShellEv
|
7
|
+
# OAuth 2 Authorization endpoint response
|
8
|
+
class OAuthToken < BaseModel
|
9
|
+
SKIP = Object.new
|
10
|
+
private_constant :SKIP
|
11
|
+
|
12
|
+
# Access token
|
13
|
+
# @return [String]
|
14
|
+
attr_accessor :access_token
|
15
|
+
|
16
|
+
# Type of access token
|
17
|
+
# @return [String]
|
18
|
+
attr_accessor :token_type
|
19
|
+
|
20
|
+
# Time in seconds before the access token expires
|
21
|
+
# @return [Integer]
|
22
|
+
attr_accessor :expires_in
|
23
|
+
|
24
|
+
# List of scopes granted
|
25
|
+
# This is a space-delimited list of strings.
|
26
|
+
# @return [String]
|
27
|
+
attr_accessor :scope
|
28
|
+
|
29
|
+
# Time of token expiry as unix timestamp (UTC)
|
30
|
+
# @return [Integer]
|
31
|
+
attr_accessor :expiry
|
32
|
+
|
33
|
+
# Refresh token
|
34
|
+
# Used to get a new access token when it expires.
|
35
|
+
# @return [String]
|
36
|
+
attr_accessor :refresh_token
|
37
|
+
|
38
|
+
# A mapping from model property names to API property names.
|
39
|
+
def self.names
|
40
|
+
@_hash = {} if @_hash.nil?
|
41
|
+
@_hash['access_token'] = 'access_token'
|
42
|
+
@_hash['token_type'] = 'token_type'
|
43
|
+
@_hash['expires_in'] = 'expires_in'
|
44
|
+
@_hash['scope'] = 'scope'
|
45
|
+
@_hash['expiry'] = 'expiry'
|
46
|
+
@_hash['refresh_token'] = 'refresh_token'
|
47
|
+
@_hash
|
48
|
+
end
|
49
|
+
|
50
|
+
# An array for optional fields
|
51
|
+
def self.optionals
|
52
|
+
%w[
|
53
|
+
expires_in
|
54
|
+
scope
|
55
|
+
expiry
|
56
|
+
refresh_token
|
57
|
+
]
|
58
|
+
end
|
59
|
+
|
60
|
+
# An array for nullable fields
|
61
|
+
def self.nullables
|
62
|
+
[]
|
63
|
+
end
|
64
|
+
|
65
|
+
def initialize(access_token = nil,
|
66
|
+
token_type = nil,
|
67
|
+
expires_in = SKIP,
|
68
|
+
scope = SKIP,
|
69
|
+
expiry = SKIP,
|
70
|
+
refresh_token = SKIP)
|
71
|
+
@access_token = access_token
|
72
|
+
@token_type = token_type
|
73
|
+
@expires_in = expires_in unless expires_in == SKIP
|
74
|
+
@scope = scope unless scope == SKIP
|
75
|
+
@expiry = expiry unless expiry == SKIP
|
76
|
+
@refresh_token = refresh_token unless refresh_token == SKIP
|
77
|
+
end
|
78
|
+
|
79
|
+
# Creates an instance of the object from a hash.
|
80
|
+
def self.from_hash(hash)
|
81
|
+
return nil unless hash
|
82
|
+
|
83
|
+
# Extract variables from the hash.
|
84
|
+
access_token = hash.key?('access_token') ? hash['access_token'] : nil
|
85
|
+
token_type = hash.key?('token_type') ? hash['token_type'] : nil
|
86
|
+
expires_in = hash.key?('expires_in') ? hash['expires_in'] : SKIP
|
87
|
+
scope = hash.key?('scope') ? hash['scope'] : SKIP
|
88
|
+
expiry = hash.key?('expiry') ? hash['expiry'] : SKIP
|
89
|
+
refresh_token = hash.key?('refresh_token') ? hash['refresh_token'] : SKIP
|
90
|
+
|
91
|
+
# Create object from extracted values.
|
92
|
+
OAuthToken.new(access_token,
|
93
|
+
token_type,
|
94
|
+
expires_in,
|
95
|
+
scope,
|
96
|
+
expiry,
|
97
|
+
refresh_token)
|
98
|
+
end
|
99
|
+
end
|
100
|
+
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
|
+
# OpeningHoursObject Model.
|
8
|
+
class OpeningHoursObject < BaseModel
|
9
|
+
SKIP = Object.new
|
10
|
+
private_constant :SKIP
|
11
|
+
|
12
|
+
# 3 letter day of the week
|
13
|
+
# @return [OpeningHoursObjectWeekDayEnum]
|
14
|
+
attr_accessor :week_day
|
15
|
+
|
16
|
+
# Hour in 24h local time when the location opens.
|
17
|
+
# @return [String]
|
18
|
+
attr_accessor :start_time
|
19
|
+
|
20
|
+
# Hour in 24h local time when the location closes.
|
21
|
+
# @return [String]
|
22
|
+
attr_accessor :end_time
|
23
|
+
|
24
|
+
# A mapping from model property names to API property names.
|
25
|
+
def self.names
|
26
|
+
@_hash = {} if @_hash.nil?
|
27
|
+
@_hash['week_day'] = 'weekDay'
|
28
|
+
@_hash['start_time'] = 'startTime'
|
29
|
+
@_hash['end_time'] = 'endTime'
|
30
|
+
@_hash
|
31
|
+
end
|
32
|
+
|
33
|
+
# An array for optional fields
|
34
|
+
def self.optionals
|
35
|
+
%w[
|
36
|
+
week_day
|
37
|
+
start_time
|
38
|
+
end_time
|
39
|
+
]
|
40
|
+
end
|
41
|
+
|
42
|
+
# An array for nullable fields
|
43
|
+
def self.nullables
|
44
|
+
[]
|
45
|
+
end
|
46
|
+
|
47
|
+
def initialize(week_day = SKIP,
|
48
|
+
start_time = SKIP,
|
49
|
+
end_time = SKIP)
|
50
|
+
@week_day = week_day unless week_day == SKIP
|
51
|
+
@start_time = start_time unless start_time == SKIP
|
52
|
+
@end_time = end_time unless end_time == SKIP
|
53
|
+
end
|
54
|
+
|
55
|
+
# Creates an instance of the object from a hash.
|
56
|
+
def self.from_hash(hash)
|
57
|
+
return nil unless hash
|
58
|
+
|
59
|
+
# Extract variables from the hash.
|
60
|
+
week_day = hash.key?('weekDay') ? hash['weekDay'] : SKIP
|
61
|
+
start_time = hash.key?('startTime') ? hash['startTime'] : SKIP
|
62
|
+
end_time = hash.key?('endTime') ? hash['endTime'] : SKIP
|
63
|
+
|
64
|
+
# Create object from extracted values.
|
65
|
+
OpeningHoursObject.new(week_day,
|
66
|
+
start_time,
|
67
|
+
end_time)
|
68
|
+
end
|
69
|
+
end
|
70
|
+
end
|
@@ -0,0 +1,38 @@
|
|
1
|
+
# shell_ev
|
2
|
+
#
|
3
|
+
# This file was automatically generated by APIMATIC v2.0
|
4
|
+
# ( https://apimatic.io ).
|
5
|
+
|
6
|
+
module ShellEv
|
7
|
+
# 3 letter day of the week
|
8
|
+
class OpeningHoursObjectWeekDayEnum
|
9
|
+
OPENING_HOURS_OBJECT_WEEK_DAY_ENUM = [
|
10
|
+
# TODO: Write general description for SUN
|
11
|
+
SUN = 'Sun'.freeze,
|
12
|
+
|
13
|
+
# TODO: Write general description for MON
|
14
|
+
MON = 'Mon'.freeze,
|
15
|
+
|
16
|
+
# TODO: Write general description for TUE
|
17
|
+
TUE = 'Tue'.freeze,
|
18
|
+
|
19
|
+
# TODO: Write general description for WED
|
20
|
+
WED = 'Wed'.freeze,
|
21
|
+
|
22
|
+
# TODO: Write general description for THU
|
23
|
+
THU = 'Thu'.freeze,
|
24
|
+
|
25
|
+
# TODO: Write general description for FRI
|
26
|
+
FRI = 'Fri'.freeze,
|
27
|
+
|
28
|
+
# TODO: Write general description for SAT
|
29
|
+
SAT = 'Sat'.freeze
|
30
|
+
].freeze
|
31
|
+
|
32
|
+
def self.validate(value)
|
33
|
+
return false if value.nil?
|
34
|
+
|
35
|
+
OPENING_HOURS_OBJECT_WEEK_DAY_ENUM.include?(value)
|
36
|
+
end
|
37
|
+
end
|
38
|
+
end
|
@@ -0,0 +1,26 @@
|
|
1
|
+
# shell_ev
|
2
|
+
#
|
3
|
+
# This file was automatically generated by APIMATIC v2.0
|
4
|
+
# ( https://apimatic.io ).
|
5
|
+
|
6
|
+
module ShellEv
|
7
|
+
# Indicates overall status of the request
|
8
|
+
class ResponseBaseStatusEnum
|
9
|
+
RESPONSE_BASE_STATUS_ENUM = [
|
10
|
+
# TODO: Write general description for FAILED
|
11
|
+
FAILED = 'FAILED'.freeze,
|
12
|
+
|
13
|
+
# TODO: Write general description for PARTIAL_SUCCESS
|
14
|
+
PARTIAL_SUCCESS = 'PARTIAL_SUCCESS'.freeze,
|
15
|
+
|
16
|
+
# TODO: Write general description for SUCCESS
|
17
|
+
SUCCESS = 'SUCCESS'.freeze
|
18
|
+
].freeze
|
19
|
+
|
20
|
+
def self.validate(value)
|
21
|
+
return false if value.nil?
|
22
|
+
|
23
|
+
RESPONSE_BASE_STATUS_ENUM.include?(value)
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
@@ -0,0 +1,57 @@
|
|
1
|
+
# shell_ev
|
2
|
+
#
|
3
|
+
# This file was automatically generated by APIMATIC v2.0
|
4
|
+
# ( https://apimatic.io ).
|
5
|
+
|
6
|
+
module ShellEv
|
7
|
+
# ResponseError401AllOf1 Model.
|
8
|
+
class ResponseError401AllOf1 < BaseModel
|
9
|
+
SKIP = Object.new
|
10
|
+
private_constant :SKIP
|
11
|
+
|
12
|
+
# Details of error(s) encountered
|
13
|
+
# @return [Array[ResponseError401AllOf1ErrorsItems]]
|
14
|
+
attr_accessor :errors
|
15
|
+
|
16
|
+
# A mapping from model property names to API property names.
|
17
|
+
def self.names
|
18
|
+
@_hash = {} if @_hash.nil?
|
19
|
+
@_hash['errors'] = 'Errors'
|
20
|
+
@_hash
|
21
|
+
end
|
22
|
+
|
23
|
+
# An array for optional fields
|
24
|
+
def self.optionals
|
25
|
+
[]
|
26
|
+
end
|
27
|
+
|
28
|
+
# An array for nullable fields
|
29
|
+
def self.nullables
|
30
|
+
[]
|
31
|
+
end
|
32
|
+
|
33
|
+
def initialize(errors = nil)
|
34
|
+
@errors = errors
|
35
|
+
end
|
36
|
+
|
37
|
+
# Creates an instance of the object from a hash.
|
38
|
+
def self.from_hash(hash)
|
39
|
+
return nil unless hash
|
40
|
+
|
41
|
+
# Extract variables from the hash.
|
42
|
+
# Parameter is an array, so we need to iterate through it
|
43
|
+
errors = nil
|
44
|
+
unless hash['Errors'].nil?
|
45
|
+
errors = []
|
46
|
+
hash['Errors'].each do |structure|
|
47
|
+
errors << (ResponseError401AllOf1ErrorsItems.from_hash(structure) if structure)
|
48
|
+
end
|
49
|
+
end
|
50
|
+
|
51
|
+
errors = nil unless hash.key?('Errors')
|
52
|
+
|
53
|
+
# Create object from extracted values.
|
54
|
+
ResponseError401AllOf1.new(errors)
|
55
|
+
end
|
56
|
+
end
|
57
|
+
end
|
@@ -0,0 +1,80 @@
|
|
1
|
+
# shell_ev
|
2
|
+
#
|
3
|
+
# This file was automatically generated by APIMATIC v2.0
|
4
|
+
# ( https://apimatic.io ).
|
5
|
+
|
6
|
+
module ShellEv
|
7
|
+
# ResponseError401AllOf1ErrorsItems Model.
|
8
|
+
class ResponseError401AllOf1ErrorsItems < BaseModel
|
9
|
+
SKIP = Object.new
|
10
|
+
private_constant :SKIP
|
11
|
+
|
12
|
+
# Error code that logically best represents the error encountered
|
13
|
+
# @return [String]
|
14
|
+
attr_accessor :code
|
15
|
+
|
16
|
+
# Description of the error type
|
17
|
+
# @return [String]
|
18
|
+
attr_accessor :title
|
19
|
+
|
20
|
+
# Details of the error that can help under the cause of the error
|
21
|
+
# @return [String]
|
22
|
+
attr_accessor :detail
|
23
|
+
|
24
|
+
# Details of the error that can help under the cause of the error
|
25
|
+
# @return [Hash[String, String]]
|
26
|
+
attr_accessor :additional_info
|
27
|
+
|
28
|
+
# A mapping from model property names to API property names.
|
29
|
+
def self.names
|
30
|
+
@_hash = {} if @_hash.nil?
|
31
|
+
@_hash['code'] = 'Code'
|
32
|
+
@_hash['title'] = 'Title'
|
33
|
+
@_hash['detail'] = 'Detail'
|
34
|
+
@_hash['additional_info'] = 'AdditionalInfo'
|
35
|
+
@_hash
|
36
|
+
end
|
37
|
+
|
38
|
+
# An array for optional fields
|
39
|
+
def self.optionals
|
40
|
+
%w[
|
41
|
+
additional_info
|
42
|
+
]
|
43
|
+
end
|
44
|
+
|
45
|
+
# An array for nullable fields
|
46
|
+
def self.nullables
|
47
|
+
%w[
|
48
|
+
additional_info
|
49
|
+
]
|
50
|
+
end
|
51
|
+
|
52
|
+
def initialize(code = nil,
|
53
|
+
title = nil,
|
54
|
+
detail = nil,
|
55
|
+
additional_info = SKIP)
|
56
|
+
@code = code
|
57
|
+
@title = title
|
58
|
+
@detail = detail
|
59
|
+
@additional_info = additional_info unless additional_info == SKIP
|
60
|
+
end
|
61
|
+
|
62
|
+
# Creates an instance of the object from a hash.
|
63
|
+
def self.from_hash(hash)
|
64
|
+
return nil unless hash
|
65
|
+
|
66
|
+
# Extract variables from the hash.
|
67
|
+
code = hash.key?('Code') ? hash['Code'] : nil
|
68
|
+
title = hash.key?('Title') ? hash['Title'] : nil
|
69
|
+
detail = hash.key?('Detail') ? hash['Detail'] : nil
|
70
|
+
additional_info =
|
71
|
+
hash.key?('AdditionalInfo') ? hash['AdditionalInfo'] : SKIP
|
72
|
+
|
73
|
+
# Create object from extracted values.
|
74
|
+
ResponseError401AllOf1ErrorsItems.new(code,
|
75
|
+
title,
|
76
|
+
detail,
|
77
|
+
additional_info)
|
78
|
+
end
|
79
|
+
end
|
80
|
+
end
|
@@ -0,0 +1,157 @@
|
|
1
|
+
# shell_ev
|
2
|
+
#
|
3
|
+
# This file was automatically generated by APIMATIC v2.0
|
4
|
+
# ( https://apimatic.io ).
|
5
|
+
|
6
|
+
module ShellEv
|
7
|
+
# A Marker is a place on the map that represent a single Location
|
8
|
+
class SingleLocationMarker < BaseModel
|
9
|
+
SKIP = Object.new
|
10
|
+
private_constant :SKIP
|
11
|
+
|
12
|
+
# Identifies the marker type. If it''s a `SingleLocationMarker`, then the
|
13
|
+
# value is `SingleLocation`
|
14
|
+
# @return [String]
|
15
|
+
attr_accessor :marker_type
|
16
|
+
|
17
|
+
# Uniquely identifies the marker object
|
18
|
+
# @return [String]
|
19
|
+
attr_accessor :unique_key
|
20
|
+
|
21
|
+
# Minimum of all status values in the Marker, e.g. if at least one Evse in
|
22
|
+
# the Marker is available, the value will be available
|
23
|
+
# @return [SingleLocationMarkerStatusEnum]
|
24
|
+
attr_accessor :status
|
25
|
+
|
26
|
+
# Coordinates of the Shell Recharge Site Location
|
27
|
+
# @return [Coordinates]
|
28
|
+
attr_accessor :coordinates
|
29
|
+
|
30
|
+
# Total number of Evse units in Locations that this Marker represents
|
31
|
+
# @return [Float]
|
32
|
+
attr_accessor :evse_count
|
33
|
+
|
34
|
+
# Maximum power in kW across all locations grouped in this marker
|
35
|
+
# (disregarding availability)
|
36
|
+
# @return [Float]
|
37
|
+
attr_accessor :max_power
|
38
|
+
|
39
|
+
# GeoHash of marker coordinates
|
40
|
+
# @return [String]
|
41
|
+
attr_accessor :geo_hash
|
42
|
+
|
43
|
+
# Unique ID of the Location this Marker represents
|
44
|
+
# @return [Float]
|
45
|
+
attr_accessor :location_uid
|
46
|
+
|
47
|
+
# Methods that can be used to Authorize sessions on this EVSE
|
48
|
+
# @return [Array[SingleLocationMarkerAuthorizationMethodsItemsEnum]]
|
49
|
+
attr_accessor :authorization_methods
|
50
|
+
|
51
|
+
# Unique Id of the operator
|
52
|
+
# @return [String]
|
53
|
+
attr_accessor :operator_id
|
54
|
+
|
55
|
+
# A mapping from model property names to API property names.
|
56
|
+
def self.names
|
57
|
+
@_hash = {} if @_hash.nil?
|
58
|
+
@_hash['marker_type'] = 'markerType'
|
59
|
+
@_hash['unique_key'] = 'uniqueKey'
|
60
|
+
@_hash['status'] = 'status'
|
61
|
+
@_hash['coordinates'] = 'coordinates'
|
62
|
+
@_hash['evse_count'] = 'evseCount'
|
63
|
+
@_hash['max_power'] = 'maxPower'
|
64
|
+
@_hash['geo_hash'] = 'geoHash'
|
65
|
+
@_hash['location_uid'] = 'locationUid'
|
66
|
+
@_hash['authorization_methods'] = 'authorizationMethods'
|
67
|
+
@_hash['operator_id'] = 'operatorId'
|
68
|
+
@_hash
|
69
|
+
end
|
70
|
+
|
71
|
+
# An array for optional fields
|
72
|
+
def self.optionals
|
73
|
+
%w[
|
74
|
+
unique_key
|
75
|
+
status
|
76
|
+
coordinates
|
77
|
+
evse_count
|
78
|
+
max_power
|
79
|
+
geo_hash
|
80
|
+
location_uid
|
81
|
+
authorization_methods
|
82
|
+
operator_id
|
83
|
+
]
|
84
|
+
end
|
85
|
+
|
86
|
+
# An array for nullable fields
|
87
|
+
def self.nullables
|
88
|
+
[]
|
89
|
+
end
|
90
|
+
|
91
|
+
def initialize(marker_type = nil,
|
92
|
+
unique_key = SKIP,
|
93
|
+
status = SKIP,
|
94
|
+
coordinates = SKIP,
|
95
|
+
evse_count = SKIP,
|
96
|
+
max_power = SKIP,
|
97
|
+
geo_hash = SKIP,
|
98
|
+
location_uid = SKIP,
|
99
|
+
authorization_methods = SKIP,
|
100
|
+
operator_id = SKIP)
|
101
|
+
@marker_type = marker_type
|
102
|
+
@unique_key = unique_key unless unique_key == SKIP
|
103
|
+
@status = status unless status == SKIP
|
104
|
+
@coordinates = coordinates unless coordinates == SKIP
|
105
|
+
@evse_count = evse_count unless evse_count == SKIP
|
106
|
+
@max_power = max_power unless max_power == SKIP
|
107
|
+
@geo_hash = geo_hash unless geo_hash == SKIP
|
108
|
+
@location_uid = location_uid unless location_uid == SKIP
|
109
|
+
@authorization_methods = authorization_methods unless authorization_methods == SKIP
|
110
|
+
@operator_id = operator_id unless operator_id == SKIP
|
111
|
+
end
|
112
|
+
|
113
|
+
# Creates an instance of the object from a hash.
|
114
|
+
def self.from_hash(hash)
|
115
|
+
return nil unless hash
|
116
|
+
|
117
|
+
# Extract variables from the hash.
|
118
|
+
marker_type = hash.key?('markerType') ? hash['markerType'] : nil
|
119
|
+
unique_key = hash.key?('uniqueKey') ? hash['uniqueKey'] : SKIP
|
120
|
+
status = hash.key?('status') ? hash['status'] : SKIP
|
121
|
+
coordinates = Coordinates.from_hash(hash['coordinates']) if hash['coordinates']
|
122
|
+
evse_count = hash.key?('evseCount') ? hash['evseCount'] : SKIP
|
123
|
+
max_power = hash.key?('maxPower') ? hash['maxPower'] : SKIP
|
124
|
+
geo_hash = hash.key?('geoHash') ? hash['geoHash'] : SKIP
|
125
|
+
location_uid = hash.key?('locationUid') ? hash['locationUid'] : SKIP
|
126
|
+
authorization_methods =
|
127
|
+
hash.key?('authorizationMethods') ? hash['authorizationMethods'] : SKIP
|
128
|
+
operator_id = hash.key?('operatorId') ? hash['operatorId'] : SKIP
|
129
|
+
|
130
|
+
# Create object from extracted values.
|
131
|
+
SingleLocationMarker.new(marker_type,
|
132
|
+
unique_key,
|
133
|
+
status,
|
134
|
+
coordinates,
|
135
|
+
evse_count,
|
136
|
+
max_power,
|
137
|
+
geo_hash,
|
138
|
+
location_uid,
|
139
|
+
authorization_methods,
|
140
|
+
operator_id)
|
141
|
+
end
|
142
|
+
|
143
|
+
# Validates an instance of the object from a given value.
|
144
|
+
# @param [SingleLocationMarker | Hash] The value against the validation is performed.
|
145
|
+
def self.validate(value)
|
146
|
+
if value.instance_of? self
|
147
|
+
return APIHelper.valid_type?(value.marker_type,
|
148
|
+
->(val) { val.instance_of? String })
|
149
|
+
end
|
150
|
+
|
151
|
+
return false unless value.instance_of? Hash
|
152
|
+
|
153
|
+
APIHelper.valid_type?(value['markerType'],
|
154
|
+
->(val) { val.instance_of? String })
|
155
|
+
end
|
156
|
+
end
|
157
|
+
end
|