aftership-tracking-sdk 9.0.0 → 11.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 (97) hide show
  1. checksums.yaml +4 -4
  2. data/LICENSE +1 -1
  3. data/README.md +16 -19
  4. data/lib/aftership-tracking-sdk/api/courier.rb +16 -60
  5. data/lib/aftership-tracking-sdk/api/courier_connection.rb +283 -0
  6. data/lib/aftership-tracking-sdk/api/estimated_delivery_date.rb +55 -1
  7. data/lib/aftership-tracking-sdk/api/tracking.rb +17 -17
  8. data/lib/aftership-tracking-sdk/models/{additional_fields_v1.rb → additional_fields.rb} +9 -9
  9. data/lib/aftership-tracking-sdk/models/checkpoint.rb +24 -14
  10. data/lib/aftership-tracking-sdk/models/courier.rb +17 -7
  11. data/lib/aftership-tracking-sdk/models/courier_connection.rb +193 -0
  12. data/lib/aftership-tracking-sdk/models/courier_connection_response_for_get_courier_connections.rb +163 -0
  13. data/lib/aftership-tracking-sdk/models/{courier_response_v1.rb → courier_response.rb} +6 -6
  14. data/lib/aftership-tracking-sdk/models/create_tracking_request.rb +55 -105
  15. data/lib/aftership-tracking-sdk/models/create_tracking_response.rb +53 -113
  16. data/lib/aftership-tracking-sdk/models/credential_field.rb +173 -0
  17. data/lib/aftership-tracking-sdk/models/{get_user_couriers_response.rb → credentials_courier.rb} +9 -19
  18. data/lib/aftership-tracking-sdk/models/customers_create_tracking_request.rb +193 -0
  19. data/lib/aftership-tracking-sdk/models/customers_create_tracking_response.rb +193 -0
  20. data/lib/aftership-tracking-sdk/models/customers_delete_tracking_by_id_response.rb +193 -0
  21. data/lib/aftership-tracking-sdk/models/customers_get_tracking_by_id_response.rb +193 -0
  22. data/lib/aftership-tracking-sdk/models/customers_mark_tracking_completed_by_id_response.rb +193 -0
  23. data/lib/aftership-tracking-sdk/models/customers_retrack_tracking_by_id_response.rb +193 -0
  24. data/lib/aftership-tracking-sdk/models/customers_tracking.rb +193 -0
  25. data/lib/aftership-tracking-sdk/models/customers_update_tracking_by_id_request.rb +193 -0
  26. data/lib/aftership-tracking-sdk/models/customers_update_tracking_by_id_response.rb +193 -0
  27. data/lib/aftership-tracking-sdk/models/data_courier_connection_response_for_get_courier_connections.rb +163 -0
  28. data/lib/aftership-tracking-sdk/models/{data_courier_response_v1.rb → data_courier_response.rb} +2 -2
  29. data/lib/aftership-tracking-sdk/models/{data_tracking_response_get_multiple_v1.rb → data_tracking_response_for_get_trackings.rb} +4 -4
  30. data/lib/aftership-tracking-sdk/models/delete_courier_connections_by_id_response.rb +193 -0
  31. data/lib/aftership-tracking-sdk/models/delete_tracking_by_id_response.rb +53 -113
  32. data/lib/aftership-tracking-sdk/models/destination_address_estimated_delivery_date_request.rb +6 -6
  33. data/lib/aftership-tracking-sdk/models/destination_address_estimated_delivery_date_response.rb +6 -6
  34. data/lib/aftership-tracking-sdk/models/destination_address_predict_request.rb +193 -0
  35. data/lib/aftership-tracking-sdk/models/destination_address_predict_response.rb +193 -0
  36. data/lib/aftership-tracking-sdk/models/detect_courier_request.rb +26 -46
  37. data/lib/aftership-tracking-sdk/models/estimated_pickup_predict_request.rb +183 -0
  38. data/lib/aftership-tracking-sdk/models/estimated_pickup_predict_response.rb +193 -0
  39. data/lib/aftership-tracking-sdk/models/{next_couriers_delete_tracking_by_id_response.rb → first_mile_create_tracking_response.rb} +29 -29
  40. data/lib/aftership-tracking-sdk/models/first_mile_delete_tracking_by_id_response.rb +193 -0
  41. data/lib/aftership-tracking-sdk/models/first_mile_get_tracking_by_id_response.rb +193 -0
  42. data/lib/aftership-tracking-sdk/models/first_mile_mark_tracking_completed_by_id_response.rb +193 -0
  43. data/lib/aftership-tracking-sdk/models/first_mile_retrack_tracking_by_id_response.rb +193 -0
  44. data/lib/aftership-tracking-sdk/models/{next_couriers_get_tracking_by_id_response.rb → first_mile_tracking.rb} +29 -29
  45. data/lib/aftership-tracking-sdk/models/first_mile_update_tracking_by_id_response.rb +193 -0
  46. data/lib/aftership-tracking-sdk/models/get_courier_connections_by_id_response.rb +193 -0
  47. data/lib/aftership-tracking-sdk/models/get_courier_connections_response.rb +163 -0
  48. data/lib/aftership-tracking-sdk/models/{get_all_couriers_response.rb → get_couriers_response.rb} +2 -2
  49. data/lib/aftership-tracking-sdk/models/get_tracking_by_id_response.rb +53 -113
  50. data/lib/aftership-tracking-sdk/models/{next_couriers_create_tracking_request.rb → last_mile_create_tracking_request.rb} +13 -13
  51. data/lib/aftership-tracking-sdk/models/last_mile_create_tracking_response.rb +203 -0
  52. data/lib/aftership-tracking-sdk/models/{next_couriers_create_tracking_response.rb → last_mile_delete_tracking_by_id_response.rb} +33 -23
  53. data/lib/aftership-tracking-sdk/models/last_mile_get_tracking_by_id_response.rb +203 -0
  54. data/lib/aftership-tracking-sdk/models/last_mile_mark_tracking_completed_by_id_response.rb +203 -0
  55. data/lib/aftership-tracking-sdk/models/last_mile_retrack_tracking_by_id_response.rb +203 -0
  56. data/lib/aftership-tracking-sdk/models/{next_couriers_mark_tracking_completed_by_id_response.rb → last_mile_tracking.rb} +33 -23
  57. data/lib/aftership-tracking-sdk/models/last_mile_update_tracking_by_id_response.rb +203 -0
  58. data/lib/aftership-tracking-sdk/models/latest_estimated_delivery_create_tracking_response.rb +10 -0
  59. data/lib/aftership-tracking-sdk/models/latest_estimated_delivery_delete_tracking_by_id_response.rb +10 -0
  60. data/lib/aftership-tracking-sdk/models/latest_estimated_delivery_get_tracking_by_id_response.rb +10 -0
  61. data/lib/aftership-tracking-sdk/models/latest_estimated_delivery_mark_tracking_completed_by_id_response.rb +10 -0
  62. data/lib/aftership-tracking-sdk/models/latest_estimated_delivery_retrack_tracking_by_id_response.rb +10 -0
  63. data/lib/aftership-tracking-sdk/models/latest_estimated_delivery_tracking.rb +10 -0
  64. data/lib/aftership-tracking-sdk/models/latest_estimated_delivery_update_tracking_by_id_response.rb +10 -0
  65. data/lib/aftership-tracking-sdk/models/mark_tracking_completed_by_id_request.rb +10 -0
  66. data/lib/aftership-tracking-sdk/models/mark_tracking_completed_by_id_response.rb +53 -113
  67. data/lib/aftership-tracking-sdk/models/{meta_v1.rb → meta.rb} +2 -2
  68. data/lib/aftership-tracking-sdk/models/order_processing_time_estimated_pickup_predict_request.rb +163 -0
  69. data/lib/aftership-tracking-sdk/models/order_processing_time_estimated_pickup_predict_response.rb +163 -0
  70. data/lib/aftership-tracking-sdk/models/origin_address_estimated_delivery_date_request.rb +6 -6
  71. data/lib/aftership-tracking-sdk/models/origin_address_estimated_delivery_date_response.rb +6 -6
  72. data/lib/aftership-tracking-sdk/models/origin_address_predict_request.rb +193 -0
  73. data/lib/aftership-tracking-sdk/models/origin_address_predict_response.rb +193 -0
  74. data/lib/aftership-tracking-sdk/models/pagination_data_courier_connection_response_for_get_courier_connections.rb +173 -0
  75. data/lib/aftership-tracking-sdk/models/{pagination_data_tracking_response_get_multiple_v1.rb → pagination_data_tracking_response_for_get_trackings.rb} +2 -2
  76. data/lib/aftership-tracking-sdk/models/pagination_get_courier_connections_response.rb +173 -0
  77. data/lib/aftership-tracking-sdk/models/post_courier_connections_request.rb +163 -0
  78. data/lib/aftership-tracking-sdk/models/post_courier_connections_response.rb +193 -0
  79. data/lib/aftership-tracking-sdk/models/predict_request.rb +223 -0
  80. data/lib/aftership-tracking-sdk/models/predict_response.rb +273 -0
  81. data/lib/aftership-tracking-sdk/models/put_courier_connections_by_id_request.rb +153 -0
  82. data/lib/aftership-tracking-sdk/models/put_courier_connections_by_id_response.rb +193 -0
  83. data/lib/aftership-tracking-sdk/models/retrack_tracking_by_id_response.rb +53 -113
  84. data/lib/aftership-tracking-sdk/models/{slug_group_v1.rb → slug_group.rb} +3 -3
  85. data/lib/aftership-tracking-sdk/models/{tag_v1.rb → tag.rb} +3 -3
  86. data/lib/aftership-tracking-sdk/models/tracking.rb +53 -113
  87. data/lib/aftership-tracking-sdk/models/{tracking_response_v1.rb → tracking_response.rb} +4 -4
  88. data/lib/aftership-tracking-sdk/models/{tracking_response_get_multiple_v1.rb → tracking_response_for_get_trackings.rb} +6 -6
  89. data/lib/aftership-tracking-sdk/models/update_tracking_by_id_request.rb +23 -83
  90. data/lib/aftership-tracking-sdk/models/update_tracking_by_id_response.rb +53 -113
  91. data/lib/aftership-tracking-sdk/models/weight_predict_request.rb +163 -0
  92. data/lib/aftership-tracking-sdk/models/weight_predict_response.rb +163 -0
  93. data/lib/aftership-tracking-sdk/version.rb +1 -1
  94. metadata +67 -25
  95. data/lib/aftership-tracking-sdk/models/next_couriers_retrack_tracking_by_id_response.rb +0 -193
  96. data/lib/aftership-tracking-sdk/models/next_couriers_tracking.rb +0 -193
  97. data/lib/aftership-tracking-sdk/models/next_couriers_update_tracking_by_id_response.rb +0 -193
@@ -0,0 +1,193 @@
1
+ # This code was auto generated by AfterShip SDK Generator.
2
+ # Do not edit the class manually.
3
+ module AftershipAPI::Model
4
+ class DestinationAddressPredictResponse
5
+
6
+ # The country/region of the destination location where the package will be delivered. Use 3 letters of ISO 3166-1 country code.
7
+ # country_region: String;
8
+ attr_accessor :country_region
9
+
10
+ # State, province, or the equivalent location of the destination address where the package will be delivered.Either `destination_address.state` or `destination_address.postal_code` is required.
11
+ # state?: String;
12
+ attr_accessor :state
13
+
14
+ # City of the destination address where the package will be delivered.
15
+ # city?: String;
16
+ attr_accessor :city
17
+
18
+ # Postal code of the destination address.Either `destination_address.state` or `destination_address.postal_code` is required.
19
+ # postal_code?: String;
20
+ attr_accessor :postal_code
21
+
22
+ # Raw location of the destination address. A raw address will help AI to identify the accurate location of the destination address.
23
+ # raw_location?: String;
24
+ attr_accessor :raw_location
25
+
26
+ # Initializes the object
27
+ # @param [Hash] attributes Model attributes in the form of hash
28
+ def initialize(attributes = {})
29
+ if (!attributes.is_a?(Hash))
30
+ fail ArgumentError, "The input argument (attributes) must be a hash in `AftershipAPI::DestinationAddressPredictResponse` initialize method"
31
+ end
32
+
33
+ attributes = attributes.each_with_object({}) { |(k, v), h|
34
+ h[k.to_sym] = v
35
+ }
36
+
37
+ if attributes.key?(:'country_region')
38
+ self.country_region = attributes[:'country_region']
39
+ end
40
+
41
+ if attributes.key?(:'state')
42
+ self.state = attributes[:'state']
43
+ end
44
+
45
+ if attributes.key?(:'city')
46
+ self.city = attributes[:'city']
47
+ end
48
+
49
+ if attributes.key?(:'postal_code')
50
+ self.postal_code = attributes[:'postal_code']
51
+ end
52
+
53
+ if attributes.key?(:'raw_location')
54
+ self.raw_location = attributes[:'raw_location']
55
+ end
56
+ end
57
+
58
+ # Attribute type mapping.
59
+ def self.openapi_types
60
+ {
61
+ :'country_region' => :'String',
62
+ :'state' => :'String',
63
+ :'city' => :'String',
64
+ :'postal_code' => :'String',
65
+ :'raw_location' => :'String',
66
+ }
67
+ end
68
+
69
+ # Attribute mapping from ruby-style variable name to JSON key.
70
+ def self.attribute_map
71
+ {
72
+ :'country_region' => :'country_region',
73
+ :'state' => :'state',
74
+ :'city' => :'city',
75
+ :'postal_code' => :'postal_code',
76
+ :'raw_location' => :'raw_location',
77
+ }
78
+ end
79
+
80
+ # Builds the object from hash
81
+ # @param attributes [Hash] Model attributes in the form of hash
82
+ # @return [Object] Returns the model itself
83
+ def self.build_from_hash(attributes)
84
+ return nil unless attributes.is_a?(Hash)
85
+ attributes = attributes.transform_keys(&:to_sym)
86
+ transformed_hash = {}
87
+ openapi_types.each_pair do |key, type|
88
+ if attributes.key?(key) && attributes[key].nil?
89
+ transformed_hash["#{key}"] = nil
90
+ elsif type =~ /\AArray<(.*)>/i
91
+ # check to ensure the input is an array given that the attribute
92
+ # is documented as an array but the input is not
93
+ if attributes[key].is_a?(Array)
94
+ transformed_hash["#{key}"] = attributes[key].map { |v| _deserialize($1, v) }
95
+ end
96
+ elsif !attributes[key].nil?
97
+ transformed_hash["#{key}"] = _deserialize(type, attributes[key])
98
+ end
99
+ end
100
+ new(transformed_hash)
101
+ end
102
+
103
+ # Deserializes the data based on type
104
+ # @param type [String] Data type
105
+ # @param value [String] Value to be deserialized
106
+ # @return [Object] Deserialized data
107
+ def self._deserialize(type, value)
108
+ case type.to_sym
109
+ when :Time
110
+ Time.parse(value)
111
+ when :Date
112
+ Date.parse(value)
113
+ when :String
114
+ value.to_s
115
+ when :Integer
116
+ value.to_i
117
+ when :Float
118
+ value.to_f
119
+ when :Boolean
120
+ if value.to_s =~ /\A(true|t|yes|y|1)\z/i
121
+ true
122
+ else
123
+ false
124
+ end
125
+ when :Object
126
+ # generic object (usually a Hash), return directly
127
+ value
128
+ when /\AArray<(?<inner_type>.+)>\z/
129
+ inner_type = Regexp.last_match[:inner_type]
130
+ value.map { |v| _deserialize(inner_type, v) }
131
+ when /\AHash<(?<k_type>.+?), (?<v_type>.+)>\z/
132
+ k_type = Regexp.last_match[:k_type]
133
+ v_type = Regexp.last_match[:v_type]
134
+ {}.tap do |hash|
135
+ value.each do |k, v|
136
+ hash[_deserialize(k_type, k)] = _deserialize(v_type, v)
137
+ end
138
+ end
139
+ else # model
140
+ klass = AftershipAPI::Model.const_get(type)
141
+ klass.build_from_hash(value)
142
+ end
143
+ end
144
+
145
+ # Returns the string representation of the object
146
+ # @return [String] String presentation of the object
147
+ def to_s
148
+ to_hash.to_s
149
+ end
150
+
151
+ # to_body is an alias to to_hash (backward compatibility)
152
+ # @return [Hash] Returns the object in the form of hash
153
+ def to_body
154
+ to_hash
155
+ end
156
+
157
+ # Returns the object in the form of hash
158
+ # @return [Hash] Returns the object in the form of hash
159
+ def to_hash
160
+ hash = {}
161
+ self.class.attribute_map.each_pair do |attr, param|
162
+ value = self.send(attr)
163
+ next if value.nil?
164
+
165
+ hash[param] = _to_hash(value)
166
+ end
167
+ hash
168
+ end
169
+
170
+ # Outputs non-array value in the form of hash
171
+ # For object, use to_hash. Otherwise, just return the value
172
+ # @param value [Object] Any valid value
173
+ # @return [Hash] Returns the value in the form of hash
174
+ def _to_hash(value)
175
+ if value.is_a?(Array)
176
+ value.compact.map { |v| _to_hash(v) }
177
+ elsif value.is_a?(Hash)
178
+ {}.tap do |hash|
179
+ value.each { |k, v| hash[k] = _to_hash(v) }
180
+ end
181
+ elsif value.respond_to? :to_hash
182
+ value.to_hash
183
+ else
184
+ value
185
+ end
186
+ end
187
+
188
+ def to_json(*a)
189
+ to_hash.to_json(*a)
190
+ end
191
+ end
192
+ end
193
+
@@ -12,8 +12,8 @@ module AftershipAPI::Model
12
12
  attr_accessor :slug
13
13
 
14
14
  # The postal code of receiver's address. Required by some couriers. Refer to for more details
15
- # tracking_postal_code?: String;
16
- attr_accessor :tracking_postal_code
15
+ # destination_postal_code?: String;
16
+ attr_accessor :destination_postal_code
17
17
 
18
18
  # Shipping date in `YYYYMMDD` format. Required by some couriers. Refer to for more details
19
19
  # tracking_ship_date?: String;
@@ -27,29 +27,21 @@ module AftershipAPI::Model
27
27
  # tracking_key?: String;
28
28
  attr_accessor :tracking_key
29
29
 
30
- # Origin Country/Region of the shipment for a specific courier. Required by some couriers.
31
- # tracking_origin_country?: String;
32
- attr_accessor :tracking_origin_country
33
-
34
- # Destination Country/Region of the shipment for a specific courier. Required by some couriers. Refer to for more details
35
- # tracking_destination_country?: String;
36
- attr_accessor :tracking_destination_country
37
-
38
30
  # State of the destination shipping address of the shipment. Required by some couriers.
39
- # tracking_state?: String;
40
- attr_accessor :tracking_state
31
+ # destination_state?: String;
32
+ attr_accessor :destination_state
41
33
 
42
34
  # Slug group is a group of slugs which belong to same courier. For example, when you inpit "fedex-group" as slug_group, AfterShip will detect the tracking with "fedex-uk", "fedex-fims", and other slugs which belong to "fedex". It cannot be used with slug at the same time. (
43
- # slug_group?: SlugGroupV1;
35
+ # slug_group?: SlugGroup;
44
36
  attr_accessor :slug_group
45
37
 
46
38
  # Enter .
47
- # origin_country_iso3?: String;
48
- attr_accessor :origin_country_iso3
39
+ # origin_country_region?: String;
40
+ attr_accessor :origin_country_region
49
41
 
50
42
  # Enter .
51
- # destination_country_iso3?: String;
52
- attr_accessor :destination_country_iso3
43
+ # destination_country_region?: String;
44
+ attr_accessor :destination_country_region
53
45
 
54
46
  # Initializes the object
55
47
  # @param [Hash] attributes Model attributes in the form of hash
@@ -70,8 +62,8 @@ module AftershipAPI::Model
70
62
  self.slug = attributes[:'slug']
71
63
  end
72
64
 
73
- if attributes.key?(:'tracking_postal_code')
74
- self.tracking_postal_code = attributes[:'tracking_postal_code']
65
+ if attributes.key?(:'destination_postal_code')
66
+ self.destination_postal_code = attributes[:'destination_postal_code']
75
67
  end
76
68
 
77
69
  if attributes.key?(:'tracking_ship_date')
@@ -86,28 +78,20 @@ module AftershipAPI::Model
86
78
  self.tracking_key = attributes[:'tracking_key']
87
79
  end
88
80
 
89
- if attributes.key?(:'tracking_origin_country')
90
- self.tracking_origin_country = attributes[:'tracking_origin_country']
91
- end
92
-
93
- if attributes.key?(:'tracking_destination_country')
94
- self.tracking_destination_country = attributes[:'tracking_destination_country']
95
- end
96
-
97
- if attributes.key?(:'tracking_state')
98
- self.tracking_state = attributes[:'tracking_state']
81
+ if attributes.key?(:'destination_state')
82
+ self.destination_state = attributes[:'destination_state']
99
83
  end
100
84
 
101
85
  if attributes.key?(:'slug_group')
102
86
  self.slug_group = attributes[:'slug_group']
103
87
  end
104
88
 
105
- if attributes.key?(:'origin_country_iso3')
106
- self.origin_country_iso3 = attributes[:'origin_country_iso3']
89
+ if attributes.key?(:'origin_country_region')
90
+ self.origin_country_region = attributes[:'origin_country_region']
107
91
  end
108
92
 
109
- if attributes.key?(:'destination_country_iso3')
110
- self.destination_country_iso3 = attributes[:'destination_country_iso3']
93
+ if attributes.key?(:'destination_country_region')
94
+ self.destination_country_region = attributes[:'destination_country_region']
111
95
  end
112
96
  end
113
97
 
@@ -116,16 +100,14 @@ module AftershipAPI::Model
116
100
  {
117
101
  :'tracking_number' => :'String',
118
102
  :'slug' => :'Array<String>',
119
- :'tracking_postal_code' => :'String',
103
+ :'destination_postal_code' => :'String',
120
104
  :'tracking_ship_date' => :'String',
121
105
  :'tracking_account_number' => :'String',
122
106
  :'tracking_key' => :'String',
123
- :'tracking_origin_country' => :'String',
124
- :'tracking_destination_country' => :'String',
125
- :'tracking_state' => :'String',
126
- :'slug_group' => :'SlugGroupV1',
127
- :'origin_country_iso3' => :'String',
128
- :'destination_country_iso3' => :'String',
107
+ :'destination_state' => :'String',
108
+ :'slug_group' => :'SlugGroup',
109
+ :'origin_country_region' => :'String',
110
+ :'destination_country_region' => :'String',
129
111
  }
130
112
  end
131
113
 
@@ -134,16 +116,14 @@ module AftershipAPI::Model
134
116
  {
135
117
  :'tracking_number' => :'tracking_number',
136
118
  :'slug' => :'slug',
137
- :'tracking_postal_code' => :'tracking_postal_code',
119
+ :'destination_postal_code' => :'destination_postal_code',
138
120
  :'tracking_ship_date' => :'tracking_ship_date',
139
121
  :'tracking_account_number' => :'tracking_account_number',
140
122
  :'tracking_key' => :'tracking_key',
141
- :'tracking_origin_country' => :'tracking_origin_country',
142
- :'tracking_destination_country' => :'tracking_destination_country',
143
- :'tracking_state' => :'tracking_state',
123
+ :'destination_state' => :'destination_state',
144
124
  :'slug_group' => :'slug_group',
145
- :'origin_country_iso3' => :'origin_country_iso3',
146
- :'destination_country_iso3' => :'destination_country_iso3',
125
+ :'origin_country_region' => :'origin_country_region',
126
+ :'destination_country_region' => :'destination_country_region',
147
127
  }
148
128
  end
149
129
 
@@ -0,0 +1,183 @@
1
+ # This code was auto generated by AfterShip SDK Generator.
2
+ # Do not edit the class manually.
3
+ module AftershipAPI::Model
4
+ class EstimatedPickupPredictRequest
5
+
6
+ # The local order time in the origin address time zone of the package.
7
+ # order_time: String;
8
+ attr_accessor :order_time
9
+
10
+ # Order cut off time in the origin address time zone. The default value set by AfterShip is 18:00:00.
11
+ # order_cutoff_time?: String;
12
+ attr_accessor :order_cutoff_time
13
+
14
+ # Operating days in a week. Number refers to the weekday.E.g., [1,2,3,4,5] means operating days are from Monday to Friday.AfterShip will set [1,2,3,4,5] as the default value.
15
+ # business_days?: Integer[];
16
+ attr_accessor :business_days
17
+
18
+ #
19
+ # order_processing_time?: OrderProcessingTimeEstimatedPickupPredictRequest;
20
+ attr_accessor :order_processing_time
21
+
22
+ # Initializes the object
23
+ # @param [Hash] attributes Model attributes in the form of hash
24
+ def initialize(attributes = {})
25
+ if (!attributes.is_a?(Hash))
26
+ fail ArgumentError, "The input argument (attributes) must be a hash in `AftershipAPI::EstimatedPickupPredictRequest` initialize method"
27
+ end
28
+
29
+ attributes = attributes.each_with_object({}) { |(k, v), h|
30
+ h[k.to_sym] = v
31
+ }
32
+
33
+ if attributes.key?(:'order_time')
34
+ self.order_time = attributes[:'order_time']
35
+ end
36
+
37
+ if attributes.key?(:'order_cutoff_time')
38
+ self.order_cutoff_time = attributes[:'order_cutoff_time']
39
+ end
40
+
41
+ if attributes.key?(:'business_days')
42
+ self.business_days = attributes[:'business_days']
43
+ end
44
+
45
+ if attributes.key?(:'order_processing_time')
46
+ self.order_processing_time = attributes[:'order_processing_time']
47
+ end
48
+ end
49
+
50
+ # Attribute type mapping.
51
+ def self.openapi_types
52
+ {
53
+ :'order_time' => :'String',
54
+ :'order_cutoff_time' => :'String',
55
+ :'business_days' => :'Array<Integer>',
56
+ :'order_processing_time' => :'OrderProcessingTimeEstimatedPickupPredictRequest',
57
+ }
58
+ end
59
+
60
+ # Attribute mapping from ruby-style variable name to JSON key.
61
+ def self.attribute_map
62
+ {
63
+ :'order_time' => :'order_time',
64
+ :'order_cutoff_time' => :'order_cutoff_time',
65
+ :'business_days' => :'business_days',
66
+ :'order_processing_time' => :'order_processing_time',
67
+ }
68
+ end
69
+
70
+ # Builds the object from hash
71
+ # @param attributes [Hash] Model attributes in the form of hash
72
+ # @return [Object] Returns the model itself
73
+ def self.build_from_hash(attributes)
74
+ return nil unless attributes.is_a?(Hash)
75
+ attributes = attributes.transform_keys(&:to_sym)
76
+ transformed_hash = {}
77
+ openapi_types.each_pair do |key, type|
78
+ if attributes.key?(key) && attributes[key].nil?
79
+ transformed_hash["#{key}"] = nil
80
+ elsif type =~ /\AArray<(.*)>/i
81
+ # check to ensure the input is an array given that the attribute
82
+ # is documented as an array but the input is not
83
+ if attributes[key].is_a?(Array)
84
+ transformed_hash["#{key}"] = attributes[key].map { |v| _deserialize($1, v) }
85
+ end
86
+ elsif !attributes[key].nil?
87
+ transformed_hash["#{key}"] = _deserialize(type, attributes[key])
88
+ end
89
+ end
90
+ new(transformed_hash)
91
+ end
92
+
93
+ # Deserializes the data based on type
94
+ # @param type [String] Data type
95
+ # @param value [String] Value to be deserialized
96
+ # @return [Object] Deserialized data
97
+ def self._deserialize(type, value)
98
+ case type.to_sym
99
+ when :Time
100
+ Time.parse(value)
101
+ when :Date
102
+ Date.parse(value)
103
+ when :String
104
+ value.to_s
105
+ when :Integer
106
+ value.to_i
107
+ when :Float
108
+ value.to_f
109
+ when :Boolean
110
+ if value.to_s =~ /\A(true|t|yes|y|1)\z/i
111
+ true
112
+ else
113
+ false
114
+ end
115
+ when :Object
116
+ # generic object (usually a Hash), return directly
117
+ value
118
+ when /\AArray<(?<inner_type>.+)>\z/
119
+ inner_type = Regexp.last_match[:inner_type]
120
+ value.map { |v| _deserialize(inner_type, v) }
121
+ when /\AHash<(?<k_type>.+?), (?<v_type>.+)>\z/
122
+ k_type = Regexp.last_match[:k_type]
123
+ v_type = Regexp.last_match[:v_type]
124
+ {}.tap do |hash|
125
+ value.each do |k, v|
126
+ hash[_deserialize(k_type, k)] = _deserialize(v_type, v)
127
+ end
128
+ end
129
+ else # model
130
+ klass = AftershipAPI::Model.const_get(type)
131
+ klass.build_from_hash(value)
132
+ end
133
+ end
134
+
135
+ # Returns the string representation of the object
136
+ # @return [String] String presentation of the object
137
+ def to_s
138
+ to_hash.to_s
139
+ end
140
+
141
+ # to_body is an alias to to_hash (backward compatibility)
142
+ # @return [Hash] Returns the object in the form of hash
143
+ def to_body
144
+ to_hash
145
+ end
146
+
147
+ # Returns the object in the form of hash
148
+ # @return [Hash] Returns the object in the form of hash
149
+ def to_hash
150
+ hash = {}
151
+ self.class.attribute_map.each_pair do |attr, param|
152
+ value = self.send(attr)
153
+ next if value.nil?
154
+
155
+ hash[param] = _to_hash(value)
156
+ end
157
+ hash
158
+ end
159
+
160
+ # Outputs non-array value in the form of hash
161
+ # For object, use to_hash. Otherwise, just return the value
162
+ # @param value [Object] Any valid value
163
+ # @return [Hash] Returns the value in the form of hash
164
+ def _to_hash(value)
165
+ if value.is_a?(Array)
166
+ value.compact.map { |v| _to_hash(v) }
167
+ elsif value.is_a?(Hash)
168
+ {}.tap do |hash|
169
+ value.each { |k, v| hash[k] = _to_hash(v) }
170
+ end
171
+ elsif value.respond_to? :to_hash
172
+ value.to_hash
173
+ else
174
+ value
175
+ end
176
+ end
177
+
178
+ def to_json(*a)
179
+ to_hash.to_json(*a)
180
+ end
181
+ end
182
+ end
183
+