onesignal 1.0.0.beta1 → 1.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (121) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +31 -0
  3. data/LICENSE +24 -0
  4. data/README.md +75 -45
  5. data/RELEASE_INSTRUCTIONS.md +11 -0
  6. data/docs/DefaultApi.md +86 -86
  7. data/docs/InlineResponse200.md +1 -1
  8. data/docs/InlineResponse2001.md +1 -1
  9. data/docs/InlineResponse2002.md +1 -1
  10. data/docs/InlineResponse2005.md +4 -2
  11. data/docs/{InlineResponse2003.md → InlineResponse2007.md} +3 -3
  12. data/docs/InlineResponse2008.md +18 -0
  13. data/docs/InlineResponse4002.md +4 -2
  14. data/docs/InlineResponse4003.md +18 -0
  15. data/docs/InvalidIdentifierError.md +20 -0
  16. data/docs/Notification.md +12 -12
  17. data/docs/Notification200Errors.md +49 -0
  18. data/docs/NotificationAllOf.md +11 -11
  19. data/docs/NotificationSlice.md +1 -1
  20. data/docs/NotificationTarget.md +1 -1
  21. data/docs/NotificationWithMeta.md +260 -0
  22. data/docs/NotificationWithMetaAllOf.md +38 -0
  23. data/docs/OutcomesData.md +18 -0
  24. data/docs/Player.md +2 -2
  25. data/docs/PlayerNotificationTarget.md +1 -1
  26. data/docs/StringMap.md +1 -1
  27. data/lib/onesignal/api/default_api.rb +82 -55
  28. data/lib/onesignal/api_client.rb +9 -7
  29. data/lib/onesignal/api_error.rb +2 -2
  30. data/lib/onesignal/configuration.rb +6 -3
  31. data/lib/onesignal/models/app.rb +3 -2
  32. data/lib/onesignal/models/button.rb +3 -2
  33. data/lib/onesignal/models/delivery_data.rb +8 -2
  34. data/lib/onesignal/models/export_players_request_body.rb +3 -2
  35. data/lib/onesignal/models/filter.rb +3 -2
  36. data/lib/onesignal/models/filter_expressions.rb +3 -2
  37. data/lib/onesignal/models/filter_notification_target.rb +3 -2
  38. data/lib/onesignal/models/get_notification_request_body.rb +3 -2
  39. data/lib/onesignal/models/inline_response200.rb +4 -3
  40. data/lib/onesignal/models/inline_response2001.rb +4 -3
  41. data/lib/onesignal/models/inline_response2002.rb +4 -3
  42. data/lib/onesignal/models/inline_response2005.rb +19 -9
  43. data/lib/onesignal/models/{inline_response2003.rb → inline_response2007.rb} +7 -6
  44. data/lib/onesignal/models/{inline_response2004.rb → inline_response2008.rb} +13 -21
  45. data/lib/onesignal/models/inline_response201.rb +3 -2
  46. data/lib/onesignal/models/inline_response400.rb +3 -2
  47. data/lib/onesignal/models/inline_response4001.rb +3 -2
  48. data/lib/onesignal/models/inline_response4002.rb +20 -10
  49. data/lib/onesignal/models/{inline_response409.rb → inline_response4003.rb} +14 -22
  50. data/lib/onesignal/models/invalid_identifier_error.rb +234 -0
  51. data/lib/onesignal/models/notification.rb +39 -19
  52. data/lib/onesignal/models/notification200_errors.rb +105 -0
  53. data/lib/onesignal/models/notification_all_of.rb +38 -18
  54. data/lib/onesignal/models/notification_all_of_android_background_layout.rb +3 -2
  55. data/lib/onesignal/models/notification_slice.rb +4 -3
  56. data/lib/onesignal/models/notification_target.rb +4 -3
  57. data/lib/onesignal/models/notification_with_meta.rb +1526 -0
  58. data/lib/onesignal/models/notification_with_meta_all_of.rb +322 -0
  59. data/lib/onesignal/models/operator.rb +3 -2
  60. data/lib/onesignal/models/outcome_data.rb +3 -2
  61. data/lib/onesignal/models/outcomes_data.rb +221 -0
  62. data/lib/onesignal/models/platform_delivery_data.rb +3 -2
  63. data/lib/onesignal/models/player.rb +6 -8
  64. data/lib/onesignal/models/player_notification_target.rb +4 -3
  65. data/lib/onesignal/models/player_slice.rb +3 -2
  66. data/lib/onesignal/models/purchase.rb +3 -2
  67. data/lib/onesignal/models/segment.rb +3 -2
  68. data/lib/onesignal/models/segment_notification_target.rb +3 -2
  69. data/lib/onesignal/models/string_map.rb +3 -7
  70. data/lib/onesignal/models/update_player_tags_request_body.rb +3 -2
  71. data/lib/onesignal/version.rb +3 -3
  72. data/lib/{OneSignal.rb → onesignal.rb} +10 -5
  73. data/onesignal.gemspec +5 -4
  74. data/spec/api/default_api_spec.rb +20 -20
  75. data/spec/api_client_spec.rb +4 -4
  76. data/spec/configuration_spec.rb +2 -2
  77. data/spec/models/app_spec.rb +2 -2
  78. data/spec/models/button_spec.rb +2 -2
  79. data/spec/models/delivery_data_spec.rb +2 -2
  80. data/spec/models/export_players_request_body_spec.rb +2 -2
  81. data/spec/models/filter_expressions_spec.rb +2 -2
  82. data/spec/models/filter_notification_target_spec.rb +2 -2
  83. data/spec/models/filter_spec.rb +2 -2
  84. data/spec/models/get_notification_request_body_spec.rb +2 -2
  85. data/spec/models/inline_response2001_spec.rb +2 -2
  86. data/spec/models/inline_response2002_spec.rb +2 -2
  87. data/spec/models/inline_response2005_spec.rb +9 -3
  88. data/spec/models/{inline_response2003_spec.rb → inline_response2007_spec.rb} +8 -8
  89. data/spec/models/{inline_response409_spec.rb → inline_response2008_spec.rb} +9 -15
  90. data/spec/models/inline_response200_spec.rb +2 -2
  91. data/spec/models/inline_response201_spec.rb +2 -2
  92. data/spec/models/inline_response4001_spec.rb +2 -2
  93. data/spec/models/inline_response4002_spec.rb +9 -3
  94. data/spec/models/inline_response4003_spec.rb +34 -0
  95. data/spec/models/inline_response400_spec.rb +2 -2
  96. data/spec/models/{inline_response2004_spec.rb → invalid_identifier_error_spec.rb} +10 -10
  97. data/spec/models/notification200_errors_spec.rb +31 -0
  98. data/spec/models/notification_all_of_android_background_layout_spec.rb +2 -2
  99. data/spec/models/notification_all_of_spec.rb +3 -3
  100. data/spec/models/notification_slice_spec.rb +2 -2
  101. data/spec/models/notification_spec.rb +3 -3
  102. data/spec/models/notification_target_spec.rb +2 -2
  103. data/spec/models/notification_with_meta_all_of_spec.rb +94 -0
  104. data/spec/models/notification_with_meta_spec.rb +764 -0
  105. data/spec/models/operator_spec.rb +2 -2
  106. data/spec/models/outcome_data_spec.rb +2 -2
  107. data/spec/models/outcomes_data_spec.rb +34 -0
  108. data/spec/models/platform_delivery_data_spec.rb +2 -2
  109. data/spec/models/player_notification_target_spec.rb +2 -2
  110. data/spec/models/player_slice_spec.rb +2 -2
  111. data/spec/models/player_spec.rb +2 -2
  112. data/spec/models/purchase_spec.rb +2 -2
  113. data/spec/models/segment_notification_target_spec.rb +2 -2
  114. data/spec/models/segment_spec.rb +2 -2
  115. data/spec/models/string_map_spec.rb +2 -2
  116. data/spec/models/update_player_tags_request_body_spec.rb +2 -2
  117. data/spec/spec_helper.rb +2 -2
  118. metadata +51 -29
  119. data/docs/InlineResponse2004.md +0 -20
  120. data/docs/InlineResponse409.md +0 -20
  121. data/git_push.sh +0 -58
@@ -3,10 +3,10 @@
3
3
 
4
4
  #A powerful way to send personalized messages at scale and build effective customer engagement strategies. Learn more at onesignal.com
5
5
 
6
- The version of the OpenAPI document: 1.0.0
6
+ The version of the OpenAPI document: 1.0.1
7
7
  Contact: devrel@onesignal.com
8
8
  Generated by: https://openapi-generator.tech
9
- OpenAPI Generator version: 5.2.0-SNAPSHOT
9
+ OpenAPI Generator version: 6.0.0-SNAPSHOT
10
10
 
11
11
  =end
12
12
 
@@ -14,16 +14,13 @@ require 'date'
14
14
  require 'time'
15
15
 
16
16
  module OneSignal
17
- class InlineResponse409
18
- attr_accessor :success
19
-
20
- attr_accessor :errors
17
+ class InlineResponse4003
18
+ attr_accessor :erorrs
21
19
 
22
20
  # Attribute mapping from ruby-style variable name to JSON key.
23
21
  def self.attribute_map
24
22
  {
25
- :'success' => :'success',
26
- :'errors' => :'errors'
23
+ :'erorrs' => :'erorrs'
27
24
  }
28
25
  end
29
26
 
@@ -35,8 +32,7 @@ module OneSignal
35
32
  # Attribute type mapping.
36
33
  def self.openapi_types
37
34
  {
38
- :'success' => :'Boolean',
39
- :'errors' => :'Array<String>'
35
+ :'erorrs' => :'Array<String>'
40
36
  }
41
37
  end
42
38
 
@@ -50,24 +46,20 @@ module OneSignal
50
46
  # @param [Hash] attributes Model attributes in the form of hash
51
47
  def initialize(attributes = {})
52
48
  if (!attributes.is_a?(Hash))
53
- fail ArgumentError, "The input argument (attributes) must be a hash in `OneSignal::InlineResponse409` initialize method"
49
+ fail ArgumentError, "The input argument (attributes) must be a hash in `OneSignal::InlineResponse4003` initialize method"
54
50
  end
55
51
 
56
52
  # check to see if the attribute exists and convert string to symbol for hash key
57
53
  attributes = attributes.each_with_object({}) { |(k, v), h|
58
54
  if (!self.class.attribute_map.key?(k.to_sym))
59
- fail ArgumentError, "`#{k}` is not a valid attribute in `OneSignal::InlineResponse409`. Please check the name to make sure it's valid. List of attributes: " + self.class.attribute_map.keys.inspect
55
+ fail ArgumentError, "`#{k}` is not a valid attribute in `OneSignal::InlineResponse4003`. Please check the name to make sure it's valid. List of attributes: " + self.class.attribute_map.keys.inspect
60
56
  end
61
57
  h[k.to_sym] = v
62
58
  }
63
59
 
64
- if attributes.key?(:'success')
65
- self.success = attributes[:'success']
66
- end
67
-
68
- if attributes.key?(:'errors')
69
- if (value = attributes[:'errors']).is_a?(Array)
70
- self.errors = value
60
+ if attributes.key?(:'erorrs')
61
+ if (value = attributes[:'erorrs']).is_a?(Array)
62
+ self.erorrs = value
71
63
  end
72
64
  end
73
65
  end
@@ -90,8 +82,7 @@ module OneSignal
90
82
  def ==(o)
91
83
  return true if self.equal?(o)
92
84
  self.class == o.class &&
93
- success == o.success &&
94
- errors == o.errors
85
+ erorrs == o.erorrs
95
86
  end
96
87
 
97
88
  # @see the `==` method
@@ -103,7 +94,7 @@ module OneSignal
103
94
  # Calculates hash code according to all attributes.
104
95
  # @return [Integer] Hash code
105
96
  def hash
106
- [success, errors].hash
97
+ [erorrs].hash
107
98
  end
108
99
 
109
100
  # Builds the object from hash
@@ -118,6 +109,7 @@ module OneSignal
118
109
  # @return [Object] Returns the model itself
119
110
  def build_from_hash(attributes)
120
111
  return nil unless attributes.is_a?(Hash)
112
+ attributes = attributes.transform_keys(&:to_sym)
121
113
  self.class.openapi_types.each_pair do |key, type|
122
114
  if attributes[self.class.attribute_map[key]].nil? && self.class.openapi_nullable.include?(key)
123
115
  self.send("#{key}=", nil)
@@ -0,0 +1,234 @@
1
+ =begin
2
+ #OneSignal
3
+
4
+ #A powerful way to send personalized messages at scale and build effective customer engagement strategies. Learn more at onesignal.com
5
+
6
+ The version of the OpenAPI document: 1.0.1
7
+ Contact: devrel@onesignal.com
8
+ Generated by: https://openapi-generator.tech
9
+ OpenAPI Generator version: 6.0.0-SNAPSHOT
10
+
11
+ =end
12
+
13
+ require 'date'
14
+ require 'time'
15
+
16
+ module OneSignal
17
+ class InvalidIdentifierError
18
+ # Returned if using include_external_user_ids
19
+ attr_accessor :invalid_external_user_ids
20
+
21
+ # Returned if using include_player_ids and some were valid and others were not.
22
+ attr_accessor :invalid_player_ids
23
+
24
+ # Attribute mapping from ruby-style variable name to JSON key.
25
+ def self.attribute_map
26
+ {
27
+ :'invalid_external_user_ids' => :'invalid_external_user_ids',
28
+ :'invalid_player_ids' => :'invalid_player_ids'
29
+ }
30
+ end
31
+
32
+ # Returns all the JSON keys this model knows about
33
+ def self.acceptable_attributes
34
+ attribute_map.values
35
+ end
36
+
37
+ # Attribute type mapping.
38
+ def self.openapi_types
39
+ {
40
+ :'invalid_external_user_ids' => :'Array<String>',
41
+ :'invalid_player_ids' => :'Array<String>'
42
+ }
43
+ end
44
+
45
+ # List of attributes with nullable: true
46
+ def self.openapi_nullable
47
+ Set.new([
48
+ ])
49
+ end
50
+
51
+ # Initializes the object
52
+ # @param [Hash] attributes Model attributes in the form of hash
53
+ def initialize(attributes = {})
54
+ if (!attributes.is_a?(Hash))
55
+ fail ArgumentError, "The input argument (attributes) must be a hash in `OneSignal::InvalidIdentifierError` initialize method"
56
+ end
57
+
58
+ # check to see if the attribute exists and convert string to symbol for hash key
59
+ attributes = attributes.each_with_object({}) { |(k, v), h|
60
+ if (!self.class.attribute_map.key?(k.to_sym))
61
+ fail ArgumentError, "`#{k}` is not a valid attribute in `OneSignal::InvalidIdentifierError`. Please check the name to make sure it's valid. List of attributes: " + self.class.attribute_map.keys.inspect
62
+ end
63
+ h[k.to_sym] = v
64
+ }
65
+
66
+ if attributes.key?(:'invalid_external_user_ids')
67
+ if (value = attributes[:'invalid_external_user_ids']).is_a?(Array)
68
+ self.invalid_external_user_ids = value
69
+ end
70
+ end
71
+
72
+ if attributes.key?(:'invalid_player_ids')
73
+ if (value = attributes[:'invalid_player_ids']).is_a?(Array)
74
+ self.invalid_player_ids = value
75
+ end
76
+ end
77
+ end
78
+
79
+ # Show invalid properties with the reasons. Usually used together with valid?
80
+ # @return Array for valid properties with the reasons
81
+ def list_invalid_properties
82
+ invalid_properties = Array.new
83
+ invalid_properties
84
+ end
85
+
86
+ # Check to see if the all the properties in the model are valid
87
+ # @return true if the model is valid
88
+ def valid?
89
+ true
90
+ end
91
+
92
+ # Checks equality by comparing each attribute.
93
+ # @param [Object] Object to be compared
94
+ def ==(o)
95
+ return true if self.equal?(o)
96
+ self.class == o.class &&
97
+ invalid_external_user_ids == o.invalid_external_user_ids &&
98
+ invalid_player_ids == o.invalid_player_ids
99
+ end
100
+
101
+ # @see the `==` method
102
+ # @param [Object] Object to be compared
103
+ def eql?(o)
104
+ self == o
105
+ end
106
+
107
+ # Calculates hash code according to all attributes.
108
+ # @return [Integer] Hash code
109
+ def hash
110
+ [invalid_external_user_ids, invalid_player_ids].hash
111
+ end
112
+
113
+ # Builds the object from hash
114
+ # @param [Hash] attributes Model attributes in the form of hash
115
+ # @return [Object] Returns the model itself
116
+ def self.build_from_hash(attributes)
117
+ new.build_from_hash(attributes)
118
+ end
119
+
120
+ # Builds the object from hash
121
+ # @param [Hash] attributes Model attributes in the form of hash
122
+ # @return [Object] Returns the model itself
123
+ def build_from_hash(attributes)
124
+ return nil unless attributes.is_a?(Hash)
125
+ attributes = attributes.transform_keys(&:to_sym)
126
+ self.class.openapi_types.each_pair do |key, type|
127
+ if attributes[self.class.attribute_map[key]].nil? && self.class.openapi_nullable.include?(key)
128
+ self.send("#{key}=", nil)
129
+ elsif type =~ /\AArray<(.*)>/i
130
+ # check to ensure the input is an array given that the attribute
131
+ # is documented as an array but the input is not
132
+ if attributes[self.class.attribute_map[key]].is_a?(Array)
133
+ self.send("#{key}=", attributes[self.class.attribute_map[key]].map { |v| _deserialize($1, v) })
134
+ end
135
+ elsif !attributes[self.class.attribute_map[key]].nil?
136
+ self.send("#{key}=", _deserialize(type, attributes[self.class.attribute_map[key]]))
137
+ end
138
+ end
139
+
140
+ self
141
+ end
142
+
143
+ # Deserializes the data based on type
144
+ # @param string type Data type
145
+ # @param string value Value to be deserialized
146
+ # @return [Object] Deserialized data
147
+ def _deserialize(type, value)
148
+ case type.to_sym
149
+ when :Time
150
+ Time.parse(value)
151
+ when :Date
152
+ Date.parse(value)
153
+ when :String
154
+ value.to_s
155
+ when :Integer
156
+ value.to_i
157
+ when :Float
158
+ value.to_f
159
+ when :Boolean
160
+ if value.to_s =~ /\A(true|t|yes|y|1)\z/i
161
+ true
162
+ else
163
+ false
164
+ end
165
+ when :Object
166
+ # generic object (usually a Hash), return directly
167
+ value
168
+ when /\AArray<(?<inner_type>.+)>\z/
169
+ inner_type = Regexp.last_match[:inner_type]
170
+ value.map { |v| _deserialize(inner_type, v) }
171
+ when /\AHash<(?<k_type>.+?), (?<v_type>.+)>\z/
172
+ k_type = Regexp.last_match[:k_type]
173
+ v_type = Regexp.last_match[:v_type]
174
+ {}.tap do |hash|
175
+ value.each do |k, v|
176
+ hash[_deserialize(k_type, k)] = _deserialize(v_type, v)
177
+ end
178
+ end
179
+ else # model
180
+ # models (e.g. Pet) or oneOf
181
+ klass = OneSignal.const_get(type)
182
+ klass.respond_to?(:openapi_one_of) ? klass.build(value) : klass.build_from_hash(value)
183
+ end
184
+ end
185
+
186
+ # Returns the string representation of the object
187
+ # @return [String] String presentation of the object
188
+ def to_s
189
+ to_hash.to_s
190
+ end
191
+
192
+ # to_body is an alias to to_hash (backward compatibility)
193
+ # @return [Hash] Returns the object in the form of hash
194
+ def to_body
195
+ to_hash
196
+ end
197
+
198
+ # Returns the object in the form of hash
199
+ # @return [Hash] Returns the object in the form of hash
200
+ def to_hash
201
+ hash = {}
202
+ self.class.attribute_map.each_pair do |attr, param|
203
+ value = self.send(attr)
204
+ if value.nil?
205
+ is_nullable = self.class.openapi_nullable.include?(attr)
206
+ next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}"))
207
+ end
208
+
209
+ hash[param] = _to_hash(value)
210
+ end
211
+ hash
212
+ end
213
+
214
+ # Outputs non-array value in the form of hash
215
+ # For object, use to_hash. Otherwise, just return the value
216
+ # @param [Object] value Any valid value
217
+ # @return [Hash] Returns the value in the form of hash
218
+ def _to_hash(value)
219
+ if value.is_a?(Array)
220
+ value.compact.map { |v| _to_hash(v) }
221
+ elsif value.is_a?(Hash)
222
+ {}.tap do |hash|
223
+ value.each { |k, v| hash[k] = _to_hash(v) }
224
+ end
225
+ elsif value.respond_to? :to_hash
226
+ value.to_hash
227
+ else
228
+ value
229
+ end
230
+ end
231
+
232
+ end
233
+
234
+ end
@@ -3,10 +3,10 @@
3
3
 
4
4
  #A powerful way to send personalized messages at scale and build effective customer engagement strategies. Learn more at onesignal.com
5
5
 
6
- The version of the OpenAPI document: 1.0.0
6
+ The version of the OpenAPI document: 1.0.1
7
7
  Contact: devrel@onesignal.com
8
8
  Generated by: https://openapi-generator.tech
9
- OpenAPI Generator version: 5.2.0-SNAPSHOT
9
+ OpenAPI Generator version: 6.0.0-SNAPSHOT
10
10
 
11
11
  =end
12
12
 
@@ -60,7 +60,7 @@ module OneSignal
60
60
  # Specific playerids to send your notification to. _Does not require API Auth Key. Do not combine with other targeting parameters. Not compatible with any other targeting parameters. Example: [\"1dd608f2-c6a1-11e3-851d-000c2940e62c\"] Limit of 2,000 entries per REST API call
61
61
  attr_accessor :include_player_ids
62
62
 
63
- # Target specific devices by custom user IDs assigned via API. Not compatible with any other targeting parameters Example: [custom-id-assigned-by-api] REQUIRED: REST API Key Authentication Limit of 2,000 entries per REST API call. Note: If targeting push, email, or sms subscribers with same ids, use with channel_for_external_user_ids to indicate you are sending a push or email or sms.
63
+ # Target specific devices by custom user IDs assigned via API. Not compatible with any other targeting parameters Example: [\"custom-id-assigned-by-api\"] REQUIRED: REST API Key Authentication Limit of 2,000 entries per REST API call. Note: If targeting push, email, or sms subscribers with same ids, use with channel_for_external_user_ids to indicate you are sending a push or email or sms.
64
64
  attr_accessor :include_external_user_ids
65
65
 
66
66
  # Recommended for Sending Emails - Target specific email addresses. If an email does not correspond to an existing user, a new user will be created. Example: nick@catfac.ts Limit of 2,000 entries per REST API call
@@ -239,34 +239,34 @@ module OneSignal
239
239
  # Channel: Push Notifications Platform: iOS Sound file that is included in your app to play instead of the default device notification sound. Pass nil to disable vibration and sound for the notification. Example: \"notification.wav\"
240
240
  attr_accessor :ios_sound
241
241
 
242
- # Channel: Push Notifications Platform: Android Deprecated, this field doesn't work on Android 8 (Oreo) and newer devices! Please use Notification Categories / Channels noted above instead to support ALL versions of Android. Sound file that is included in your app to play instead of the default device notification sound. Pass nil to disable sound for the notification. NOTE: Leave off file extension for Android. Example: \"notification\"
242
+ # Channel: Push Notifications Platform: Android &#9888;&#65039;Deprecated, this field doesn't work on Android 8 (Oreo) and newer devices! Please use Notification Categories / Channels noted above instead to support ALL versions of Android. Sound file that is included in your app to play instead of the default device notification sound. Pass nil to disable sound for the notification. NOTE: Leave off file extension for Android. Example: \"notification\"
243
243
  attr_accessor :android_sound
244
244
 
245
- # Channel: Push Notifications Platform: Huawei Deprecated, this field ONLY works on EMUI 5 (Android 7 based) and older devices. Please also set Notification Categories / Channels noted above to support EMUI 8 (Android 8 based) devices. Sound file that is included in your app to play instead of the default device notification sound. NOTE: Leave off file extension for and include the full path. Example: \"/res/raw/notification\"
245
+ # Channel: Push Notifications Platform: Huawei &#9888;&#65039;Deprecated, this field ONLY works on EMUI 5 (Android 7 based) and older devices. Please also set Notification Categories / Channels noted above to support EMUI 8 (Android 8 based) devices. Sound file that is included in your app to play instead of the default device notification sound. NOTE: Leave off file extension for and include the full path. Example: \"/res/raw/notification\"
246
246
  attr_accessor :huawei_sound
247
247
 
248
- # Channel: Push Notifications Platform: Amazon Deprecated, this field doesn't work on Android 8 (Oreo) and newer devices! Please use Notification Categories / Channels noted above instead to support ALL versions of Android. Sound file that is included in your app to play instead of the default device notification sound. Pass nil to disable sound for the notification. NOTE: Leave off file extension for Android. Example: \"notification\"
248
+ # Channel: Push Notifications Platform: Amazon &#9888;&#65039;Deprecated, this field doesn't work on Android 8 (Oreo) and newer devices! Please use Notification Categories / Channels noted above instead to support ALL versions of Android. Sound file that is included in your app to play instead of the default device notification sound. Pass nil to disable sound for the notification. NOTE: Leave off file extension for Android. Example: \"notification\"
249
249
  attr_accessor :adm_sound
250
250
 
251
251
  # Channel: Push Notifications Platform: Windows Sound file that is included in your app to play instead of the default device notification sound. Example: \"notification.wav\"
252
252
  attr_accessor :wp_wns_sound
253
253
 
254
- # Channel: Push Notifications Platform: Android Deprecated, this field doesn't work on Android 8 (Oreo) and newer devices! Please use Notification Categories / Channels noted above instead to support ALL versions of Android. Sets the devices LED notification light if the device has one. ARGB Hex format. Example(Blue): \"FF0000FF\"
254
+ # Channel: Push Notifications Platform: Android &#9888;&#65039;Deprecated, this field doesn't work on Android 8 (Oreo) and newer devices! Please use Notification Categories / Channels noted above instead to support ALL versions of Android. Sets the devices LED notification light if the device has one. ARGB Hex format. Example(Blue): \"FF0000FF\"
255
255
  attr_accessor :android_led_color
256
256
 
257
- # Channel: Push Notifications Platform: Huawei Deprecated, this field ONLY works on EMUI 5 (Android 7 based) and older devices. Please also set Notification Categories / Channels noted above to support EMUI 8 (Android 8 based) devices. Sets the devices LED notification light if the device has one. RGB Hex format. Example(Blue): \"0000FF\"
257
+ # Channel: Push Notifications Platform: Huawei &#9888;&#65039;Deprecated, this field ONLY works on EMUI 5 (Android 7 based) and older devices. Please also set Notification Categories / Channels noted above to support EMUI 8 (Android 8 based) devices. Sets the devices LED notification light if the device has one. RGB Hex format. Example(Blue): \"0000FF\"
258
258
  attr_accessor :huawei_led_color
259
259
 
260
260
  # Channel: Push Notifications Platform: Android Sets the background color of the notification circle to the left of the notification text. Only applies to apps targeting Android API level 21+ on Android 5.0+ devices. Example(Red): \"FFFF0000\"
261
261
  attr_accessor :android_accent_color
262
262
 
263
- # Channel: Push Notifications Platform: Huawei Accent Color used on Action Buttons and Group overflow count. Uses RGB Hex value (E.g. #9900FF). Defaults to devices theme color if not set.
263
+ # Channel: Push Notifications Platform: Huawei Accent Color used on Action Buttons and Group overflow count. Uses RGB Hex value (E.g. #9900FF). Defaults to device's theme color if not set.
264
264
  attr_accessor :huawei_accent_color
265
265
 
266
- # Channel: Push Notifications Platform: Android 5.0_ Deprecated, this field doesn't work on Android 8 (Oreo) and newer devices! Please use Notification Categories / Channels noted above instead to support ALL versions of Android. 1 = Public (default) (Shows the full message on the lock screen unless the user has disabled all notifications from showing on the lock screen. Please consider the user and mark private if the contents are.) 0 = Private (Hides message contents on lock screen if the user set \"Hide sensitive notification content\" in the system settings) -1 = Secret (Notification does not show on the lock screen at all)
266
+ # Channel: Push Notifications Platform: Android 5.0_ &#9888;&#65039;Deprecated, this field doesn't work on Android 8 (Oreo) and newer devices! Please use Notification Categories / Channels noted above instead to support ALL versions of Android. 1 = Public (default) (Shows the full message on the lock screen unless the user has disabled all notifications from showing on the lock screen. Please consider the user and mark private if the contents are.) 0 = Private (Hides message contents on lock screen if the user set \"Hide sensitive notification content\" in the system settings) -1 = Secret (Notification does not show on the lock screen at all)
267
267
  attr_accessor :android_visibility
268
268
 
269
- # Channel: Push Notifications Platform: Huawei Deprecated, this field ONLY works on EMUI 5 (Android 7 based) and older devices. Please also set Notification Categories / Channels noted above to support EMUI 8 (Android 8 based) devices. 1 = Public (default) (Shows the full message on the lock screen unless the user has disabled all notifications from showing on the lock screen. Please consider the user and mark private if the contents are.) 0 = Private (Hides message contents on lock screen if the user set \"Hide sensitive notification content\" in the system settings) -1 = Secret (Notification does not show on the lock screen at all)
269
+ # Channel: Push Notifications Platform: Huawei &#9888;&#65039;Deprecated, this field ONLY works on EMUI 5 (Android 7 based) and older devices. Please also set Notification Categories / Channels noted above to support EMUI 8 (Android 8 based) devices. 1 = Public (default) (Shows the full message on the lock screen unless the user has disabled all notifications from showing on the lock screen. Please consider the user and mark private if the contents are.) 0 = Private (Hides message contents on lock screen if the user set \"Hide sensitive notification content\" in the system settings) -1 = Secret (Notification does not show on the lock screen at all)
270
270
  attr_accessor :huawei_visibility
271
271
 
272
272
  # Channel: Push Notifications Platform: iOS Describes whether to set or increase/decrease your app's iOS badge count by the ios_badgeCount specified count. Can specify None, SetTo, or Increase. `None` leaves the count unaffected. `SetTo` directly sets the badge count to the number specified in ios_badgeCount. `Increase` adds the number specified in ios_badgeCount to the total. Use a negative number to decrease the badge count.
@@ -327,7 +327,7 @@ module OneSignal
327
327
  attr_accessor :summary_arg_count
328
328
 
329
329
  # Channel: Email Required. The subject of the email.
330
- attr_accessor :email_subect
330
+ attr_accessor :email_subject
331
331
 
332
332
  # Channel: Email Required unless template_id is set. HTML suported The body of the email you wish to send. Typically, customers include their own HTML templates here. Must include [unsubscribe_url] in an <a> tag somewhere in the email. Note: any malformed HTML content will be sent to users. Please double-check your HTML is valid.
333
333
  attr_accessor :email_body
@@ -475,7 +475,7 @@ module OneSignal
475
475
  :'thread_id' => :'thread_id',
476
476
  :'summary_arg' => :'summary_arg',
477
477
  :'summary_arg_count' => :'summary_arg_count',
478
- :'email_subect' => :'email_subect',
478
+ :'email_subject' => :'email_subject',
479
479
  :'email_body' => :'email_body',
480
480
  :'email_from_name' => :'email_from_name',
481
481
  :'email_from_address' => :'email_from_address',
@@ -584,7 +584,7 @@ module OneSignal
584
584
  :'collapse_id' => :'String',
585
585
  :'web_push_topic' => :'String',
586
586
  :'apns_alert' => :'Object',
587
- :'send_after' => :'String',
587
+ :'send_after' => :'Time',
588
588
  :'delayed_option' => :'String',
589
589
  :'delivery_time_of_day' => :'String',
590
590
  :'ttl' => :'Integer',
@@ -598,7 +598,7 @@ module OneSignal
598
598
  :'thread_id' => :'String',
599
599
  :'summary_arg' => :'String',
600
600
  :'summary_arg_count' => :'Integer',
601
- :'email_subect' => :'String',
601
+ :'email_subject' => :'String',
602
602
  :'email_body' => :'String',
603
603
  :'email_from_name' => :'String',
604
604
  :'email_from_address' => :'String',
@@ -610,6 +610,25 @@ module OneSignal
610
610
  # List of attributes with nullable: true
611
611
  def self.openapi_nullable
612
612
  Set.new([
613
+ :'is_ios',
614
+ :'is_android',
615
+ :'is_huawei',
616
+ :'is_any_web',
617
+ :'is_chrome_web',
618
+ :'is_firefox',
619
+ :'is_safari',
620
+ :'is_wp_wns',
621
+ :'is_adm',
622
+ :'is_chrome',
623
+ :'contents',
624
+ :'headings',
625
+ :'subtitle',
626
+ :'content_available',
627
+ :'android_visibility',
628
+ :'huawei_visibility',
629
+ :'ios_badge_count',
630
+ :'ttl',
631
+ :'priority',
613
632
  ])
614
633
  end
615
634
 
@@ -1090,8 +1109,8 @@ module OneSignal
1090
1109
  self.summary_arg_count = attributes[:'summary_arg_count']
1091
1110
  end
1092
1111
 
1093
- if attributes.key?(:'email_subect')
1094
- self.email_subect = attributes[:'email_subect']
1112
+ if attributes.key?(:'email_subject')
1113
+ self.email_subject = attributes[:'email_subject']
1095
1114
  end
1096
1115
 
1097
1116
  if attributes.key?(:'email_body')
@@ -1258,7 +1277,7 @@ module OneSignal
1258
1277
  thread_id == o.thread_id &&
1259
1278
  summary_arg == o.summary_arg &&
1260
1279
  summary_arg_count == o.summary_arg_count &&
1261
- email_subect == o.email_subect &&
1280
+ email_subject == o.email_subject &&
1262
1281
  email_body == o.email_body &&
1263
1282
  email_from_name == o.email_from_name &&
1264
1283
  email_from_address == o.email_from_address &&
@@ -1275,7 +1294,7 @@ module OneSignal
1275
1294
  # Calculates hash code according to all attributes.
1276
1295
  # @return [Integer] Hash code
1277
1296
  def hash
1278
- [included_segments, excluded_segments, last_session, first_session, session_count, session_time, amount_spent, bought_sku, tag, language, app_version, location, email, country, include_player_ids, include_external_user_ids, include_email_tokens, include_phone_numbers, include_ios_tokens, include_wp_wns_uris, include_amazon_reg_ids, include_chrome_reg_ids, include_chrome_web_reg_ids, include_android_reg_ids, id, value, aggregation, is_ios, is_android, is_huawei, is_any_web, is_chrome_web, is_firefox, is_safari, is_wp_wns, is_adm, is_chrome, channel_for_external_user_ids, app_id, external_id, contents, headings, subtitle, data, huawei_msg_type, url, web_url, app_url, ios_attachments, template_id, content_available, mutable_content, target_content_identifier, big_picture, huawei_big_picture, adm_big_picture, chrome_big_picture, chrome_web_image, buttons, web_buttons, ios_category, android_channel_id, huawei_channel_id, existing_android_channel_id, huawei_existing_channel_id, android_background_layout, small_icon, huawei_small_icon, large_icon, huawei_large_icon, adm_small_icon, adm_large_icon, chrome_web_icon, chrome_web_badge, firefox_icon, chrome_icon, ios_sound, android_sound, huawei_sound, adm_sound, wp_wns_sound, android_led_color, huawei_led_color, android_accent_color, huawei_accent_color, android_visibility, huawei_visibility, ios_badge_type, ios_badge_count, collapse_id, web_push_topic, apns_alert, send_after, delayed_option, delivery_time_of_day, ttl, priority, apns_push_type_override, throttle_rate_per_minute, android_group, android_group_message, adm_group, adm_group_message, thread_id, summary_arg, summary_arg_count, email_subect, email_body, email_from_name, email_from_address, sms_from, sms_media_urls].hash
1297
+ [included_segments, excluded_segments, last_session, first_session, session_count, session_time, amount_spent, bought_sku, tag, language, app_version, location, email, country, include_player_ids, include_external_user_ids, include_email_tokens, include_phone_numbers, include_ios_tokens, include_wp_wns_uris, include_amazon_reg_ids, include_chrome_reg_ids, include_chrome_web_reg_ids, include_android_reg_ids, id, value, aggregation, is_ios, is_android, is_huawei, is_any_web, is_chrome_web, is_firefox, is_safari, is_wp_wns, is_adm, is_chrome, channel_for_external_user_ids, app_id, external_id, contents, headings, subtitle, data, huawei_msg_type, url, web_url, app_url, ios_attachments, template_id, content_available, mutable_content, target_content_identifier, big_picture, huawei_big_picture, adm_big_picture, chrome_big_picture, chrome_web_image, buttons, web_buttons, ios_category, android_channel_id, huawei_channel_id, existing_android_channel_id, huawei_existing_channel_id, android_background_layout, small_icon, huawei_small_icon, large_icon, huawei_large_icon, adm_small_icon, adm_large_icon, chrome_web_icon, chrome_web_badge, firefox_icon, chrome_icon, ios_sound, android_sound, huawei_sound, adm_sound, wp_wns_sound, android_led_color, huawei_led_color, android_accent_color, huawei_accent_color, android_visibility, huawei_visibility, ios_badge_type, ios_badge_count, collapse_id, web_push_topic, apns_alert, send_after, delayed_option, delivery_time_of_day, ttl, priority, apns_push_type_override, throttle_rate_per_minute, android_group, android_group_message, adm_group, adm_group_message, thread_id, summary_arg, summary_arg_count, email_subject, email_body, email_from_name, email_from_address, sms_from, sms_media_urls].hash
1279
1298
  end
1280
1299
 
1281
1300
  # Builds the object from hash
@@ -1290,6 +1309,7 @@ module OneSignal
1290
1309
  # @return [Object] Returns the model itself
1291
1310
  def build_from_hash(attributes)
1292
1311
  return nil unless attributes.is_a?(Hash)
1312
+ attributes = attributes.transform_keys(&:to_sym)
1293
1313
  self.class.openapi_types.each_pair do |key, type|
1294
1314
  if attributes[self.class.attribute_map[key]].nil? && self.class.openapi_nullable.include?(key)
1295
1315
  self.send("#{key}=", nil)
@@ -0,0 +1,105 @@
1
+ =begin
2
+ #OneSignal
3
+
4
+ #A powerful way to send personalized messages at scale and build effective customer engagement strategies. Learn more at onesignal.com
5
+
6
+ The version of the OpenAPI document: 1.0.1
7
+ Contact: devrel@onesignal.com
8
+ Generated by: https://openapi-generator.tech
9
+ OpenAPI Generator version: 6.0.0-SNAPSHOT
10
+
11
+ =end
12
+
13
+ require 'date'
14
+ require 'time'
15
+
16
+ module OneSignal
17
+ module Notification200Errors
18
+ class << self
19
+ # List of class defined in oneOf (OpenAPI v3)
20
+ def openapi_one_of
21
+ [
22
+ :'Array<String>',
23
+ :'InvalidIdentifierError'
24
+ ]
25
+ end
26
+
27
+ # Builds the object
28
+ # @param [Mixed] Data to be matched against the list of oneOf items
29
+ # @return [Object] Returns the model or the data itself
30
+ def build(data)
31
+ # Go through the list of oneOf items and attempt to identify the appropriate one.
32
+ # Note:
33
+ # - We do not attempt to check whether exactly one item matches.
34
+ # - No advanced validation of types in some cases (e.g. "x: { type: string }" will happily match { x: 123 })
35
+ # due to the way the deserialization is made in the base_object template (it just casts without verifying).
36
+ # - TODO: scalar values are de facto behaving as if they were nullable.
37
+ # - TODO: logging when debugging is set.
38
+ openapi_one_of.each do |klass|
39
+ begin
40
+ next if klass == :AnyType # "nullable: true"
41
+ typed_data = find_and_cast_into_type(klass, data)
42
+ return typed_data if typed_data
43
+ rescue # rescue all errors so we keep iterating even if the current item lookup raises
44
+ end
45
+ end
46
+
47
+ openapi_one_of.include?(:AnyType) ? data : nil
48
+ end
49
+
50
+ private
51
+
52
+ SchemaMismatchError = Class.new(StandardError)
53
+
54
+ # Note: 'File' is missing here because in the regular case we get the data _after_ a call to JSON.parse.
55
+ def find_and_cast_into_type(klass, data)
56
+ return if data.nil?
57
+
58
+ case klass.to_s
59
+ when 'Boolean'
60
+ return data if data.instance_of?(TrueClass) || data.instance_of?(FalseClass)
61
+ when 'Float'
62
+ return data if data.instance_of?(Float)
63
+ when 'Integer'
64
+ return data if data.instance_of?(Integer)
65
+ when 'Time'
66
+ return Time.parse(data)
67
+ when 'Date'
68
+ return Date.parse(data)
69
+ when 'String'
70
+ return data if data.instance_of?(String)
71
+ when 'Object' # "type: object"
72
+ return data if data.instance_of?(Hash)
73
+ when /\AArray<(?<sub_type>.+)>\z/ # "type: array"
74
+ if data.instance_of?(Array)
75
+ sub_type = Regexp.last_match[:sub_type]
76
+ return data.map { |item| find_and_cast_into_type(sub_type, item) }
77
+ end
78
+ when /\AHash<String, (?<sub_type>.+)>\z/ # "type: object" with "additionalProperties: { ... }"
79
+ if data.instance_of?(Hash) && data.keys.all? { |k| k.instance_of?(Symbol) || k.instance_of?(String) }
80
+ sub_type = Regexp.last_match[:sub_type]
81
+ return data.each_with_object({}) { |(k, v), hsh| hsh[k] = find_and_cast_into_type(sub_type, v) }
82
+ end
83
+ else # model
84
+ const = OneSignal.const_get(klass)
85
+ if const
86
+ if const.respond_to?(:openapi_one_of) # nested oneOf model
87
+ model = const.build(data)
88
+ return model if model
89
+ else
90
+ # raise if data contains keys that are not known to the model
91
+ raise unless (data.keys - const.acceptable_attributes).empty?
92
+ model = const.build_from_hash(data)
93
+ return model if model && model.valid?
94
+ end
95
+ end
96
+ end
97
+
98
+ raise # if no match by now, raise
99
+ rescue
100
+ raise SchemaMismatchError, "#{data} doesn't match the #{klass} type"
101
+ end
102
+ end
103
+ end
104
+
105
+ end