solifyn 1.1.4 → 1.1.6

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 (40) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +21 -4
  3. data/docs/CreateEntitlementDto.md +42 -0
  4. data/docs/CreateFramerTemplateDto.md +22 -0
  5. data/docs/EntitlementDetailResponseDto.md +56 -0
  6. data/docs/EntitlementGrantResponseDto.md +4 -0
  7. data/docs/EntitlementGrantsApi.md +5 -1
  8. data/docs/EntitlementsApi.md +331 -0
  9. data/docs/FramerIntegrationApi.md +355 -0
  10. data/docs/FramerTemplateResponseDto.md +30 -0
  11. data/docs/LinkedProductDto.md +20 -0
  12. data/docs/ProductCreate.md +7 -1
  13. data/docs/ProductUpdate.md +7 -1
  14. data/docs/UpdateEntitlementDto.md +42 -0
  15. data/docs/UpdateFramerTemplateDto.md +22 -0
  16. data/lib/solifyn/api/entitlement_grants_api.rb +6 -0
  17. data/lib/solifyn/api/entitlements_api.rb +347 -0
  18. data/lib/solifyn/api/framer_integration_api.rb +345 -0
  19. data/lib/solifyn/models/create_entitlement_dto.rb +385 -0
  20. data/lib/solifyn/models/create_framer_template_dto.rb +249 -0
  21. data/lib/solifyn/models/entitlement_detail_response_dto.rb +470 -0
  22. data/lib/solifyn/models/entitlement_grant_response_dto.rb +21 -1
  23. data/lib/solifyn/models/framer_template_response_dto.rb +317 -0
  24. data/lib/solifyn/models/linked_product_dto.rb +239 -0
  25. data/lib/solifyn/models/product_create.rb +38 -4
  26. data/lib/solifyn/models/product_update.rb +38 -4
  27. data/lib/solifyn/models/update_entitlement_dto.rb +371 -0
  28. data/lib/solifyn/models/update_framer_template_dto.rb +235 -0
  29. data/lib/solifyn/version.rb +1 -1
  30. data/lib/solifyn.rb +9 -0
  31. data/spec/api/entitlements_api_spec.rb +95 -0
  32. data/spec/api/framer_integration_api_spec.rb +95 -0
  33. data/spec/models/create_entitlement_dto_spec.rb +112 -0
  34. data/spec/models/create_framer_template_dto_spec.rb +48 -0
  35. data/spec/models/entitlement_detail_response_dto_spec.rb +150 -0
  36. data/spec/models/framer_template_response_dto_spec.rb +72 -0
  37. data/spec/models/linked_product_dto_spec.rb +42 -0
  38. data/spec/models/update_entitlement_dto_spec.rb +112 -0
  39. data/spec/models/update_framer_template_dto_spec.rb +48 -0
  40. metadata +172 -136
@@ -0,0 +1,317 @@
1
+ =begin
2
+ #Solifyn API
3
+
4
+ #Welcome to the Solifyn API Reference. Leverage our secure endpoints to manage products and issue, validate, and manage software license keys programmatically.
5
+
6
+ The version of the OpenAPI document: 1.0.0
7
+
8
+ Generated by: https://openapi-generator.tech
9
+ Generator version: 7.10.0
10
+
11
+ =end
12
+
13
+ require 'date'
14
+ require 'time'
15
+
16
+ module Solifyn
17
+ class FramerTemplateResponseDto
18
+ # The unique Framer template ID.
19
+ attr_accessor :id
20
+
21
+ # The business ID owning the template.
22
+ attr_accessor :business_id
23
+
24
+ # The name of the Framer template.
25
+ attr_accessor :name
26
+
27
+ # The public Framer remix link.
28
+ attr_accessor :remix_link
29
+
30
+ # A brief description of the template.
31
+ attr_accessor :description
32
+
33
+ # Creation timestamp.
34
+ attr_accessor :created_at
35
+
36
+ # Modification timestamp.
37
+ attr_accessor :updated_at
38
+
39
+ # Attribute mapping from ruby-style variable name to JSON key.
40
+ def self.attribute_map
41
+ {
42
+ :'id' => :'id',
43
+ :'business_id' => :'businessId',
44
+ :'name' => :'name',
45
+ :'remix_link' => :'remixLink',
46
+ :'description' => :'description',
47
+ :'created_at' => :'createdAt',
48
+ :'updated_at' => :'updatedAt'
49
+ }
50
+ end
51
+
52
+ # Returns all the JSON keys this model knows about
53
+ def self.acceptable_attributes
54
+ attribute_map.values
55
+ end
56
+
57
+ # Attribute type mapping.
58
+ def self.openapi_types
59
+ {
60
+ :'id' => :'String',
61
+ :'business_id' => :'String',
62
+ :'name' => :'String',
63
+ :'remix_link' => :'String',
64
+ :'description' => :'String',
65
+ :'created_at' => :'String',
66
+ :'updated_at' => :'String'
67
+ }
68
+ end
69
+
70
+ # List of attributes with nullable: true
71
+ def self.openapi_nullable
72
+ Set.new([
73
+ ])
74
+ end
75
+
76
+ # Initializes the object
77
+ # @param [Hash] attributes Model attributes in the form of hash
78
+ def initialize(attributes = {})
79
+ if (!attributes.is_a?(Hash))
80
+ fail ArgumentError, "The input argument (attributes) must be a hash in `Solifyn::FramerTemplateResponseDto` initialize method"
81
+ end
82
+
83
+ # check to see if the attribute exists and convert string to symbol for hash key
84
+ attributes = attributes.each_with_object({}) { |(k, v), h|
85
+ if (!self.class.attribute_map.key?(k.to_sym))
86
+ fail ArgumentError, "`#{k}` is not a valid attribute in `Solifyn::FramerTemplateResponseDto`. Please check the name to make sure it's valid. List of attributes: " + self.class.attribute_map.keys.inspect
87
+ end
88
+ h[k.to_sym] = v
89
+ }
90
+
91
+ if attributes.key?(:'id')
92
+ self.id = attributes[:'id']
93
+ else
94
+ self.id = nil
95
+ end
96
+
97
+ if attributes.key?(:'business_id')
98
+ self.business_id = attributes[:'business_id']
99
+ else
100
+ self.business_id = nil
101
+ end
102
+
103
+ if attributes.key?(:'name')
104
+ self.name = attributes[:'name']
105
+ else
106
+ self.name = nil
107
+ end
108
+
109
+ if attributes.key?(:'remix_link')
110
+ self.remix_link = attributes[:'remix_link']
111
+ else
112
+ self.remix_link = nil
113
+ end
114
+
115
+ if attributes.key?(:'description')
116
+ self.description = attributes[:'description']
117
+ end
118
+
119
+ if attributes.key?(:'created_at')
120
+ self.created_at = attributes[:'created_at']
121
+ else
122
+ self.created_at = nil
123
+ end
124
+
125
+ if attributes.key?(:'updated_at')
126
+ self.updated_at = attributes[:'updated_at']
127
+ else
128
+ self.updated_at = nil
129
+ end
130
+ end
131
+
132
+ # Show invalid properties with the reasons. Usually used together with valid?
133
+ # @return Array for valid properties with the reasons
134
+ def list_invalid_properties
135
+ warn '[DEPRECATED] the `list_invalid_properties` method is obsolete'
136
+ invalid_properties = Array.new
137
+ if @id.nil?
138
+ invalid_properties.push('invalid value for "id", id cannot be nil.')
139
+ end
140
+
141
+ if @business_id.nil?
142
+ invalid_properties.push('invalid value for "business_id", business_id cannot be nil.')
143
+ end
144
+
145
+ if @name.nil?
146
+ invalid_properties.push('invalid value for "name", name cannot be nil.')
147
+ end
148
+
149
+ if @remix_link.nil?
150
+ invalid_properties.push('invalid value for "remix_link", remix_link cannot be nil.')
151
+ end
152
+
153
+ if @created_at.nil?
154
+ invalid_properties.push('invalid value for "created_at", created_at cannot be nil.')
155
+ end
156
+
157
+ if @updated_at.nil?
158
+ invalid_properties.push('invalid value for "updated_at", updated_at cannot be nil.')
159
+ end
160
+
161
+ invalid_properties
162
+ end
163
+
164
+ # Check to see if the all the properties in the model are valid
165
+ # @return true if the model is valid
166
+ def valid?
167
+ warn '[DEPRECATED] the `valid?` method is obsolete'
168
+ return false if @id.nil?
169
+ return false if @business_id.nil?
170
+ return false if @name.nil?
171
+ return false if @remix_link.nil?
172
+ return false if @created_at.nil?
173
+ return false if @updated_at.nil?
174
+ true
175
+ end
176
+
177
+ # Checks equality by comparing each attribute.
178
+ # @param [Object] Object to be compared
179
+ def ==(o)
180
+ return true if self.equal?(o)
181
+ self.class == o.class &&
182
+ id == o.id &&
183
+ business_id == o.business_id &&
184
+ name == o.name &&
185
+ remix_link == o.remix_link &&
186
+ description == o.description &&
187
+ created_at == o.created_at &&
188
+ updated_at == o.updated_at
189
+ end
190
+
191
+ # @see the `==` method
192
+ # @param [Object] Object to be compared
193
+ def eql?(o)
194
+ self == o
195
+ end
196
+
197
+ # Calculates hash code according to all attributes.
198
+ # @return [Integer] Hash code
199
+ def hash
200
+ [id, business_id, name, remix_link, description, created_at, updated_at].hash
201
+ end
202
+
203
+ # Builds the object from hash
204
+ # @param [Hash] attributes Model attributes in the form of hash
205
+ # @return [Object] Returns the model itself
206
+ def self.build_from_hash(attributes)
207
+ return nil unless attributes.is_a?(Hash)
208
+ attributes = attributes.transform_keys(&:to_sym)
209
+ transformed_hash = {}
210
+ openapi_types.each_pair do |key, type|
211
+ if attributes.key?(attribute_map[key]) && attributes[attribute_map[key]].nil?
212
+ transformed_hash["#{key}"] = nil
213
+ elsif type =~ /\AArray<(.*)>/i
214
+ # check to ensure the input is an array given that the attribute
215
+ # is documented as an array but the input is not
216
+ if attributes[attribute_map[key]].is_a?(Array)
217
+ transformed_hash["#{key}"] = attributes[attribute_map[key]].map { |v| _deserialize($1, v) }
218
+ end
219
+ elsif !attributes[attribute_map[key]].nil?
220
+ transformed_hash["#{key}"] = _deserialize(type, attributes[attribute_map[key]])
221
+ end
222
+ end
223
+ new(transformed_hash)
224
+ end
225
+
226
+ # Deserializes the data based on type
227
+ # @param string type Data type
228
+ # @param string value Value to be deserialized
229
+ # @return [Object] Deserialized data
230
+ def self._deserialize(type, value)
231
+ case type.to_sym
232
+ when :Time
233
+ Time.parse(value)
234
+ when :Date
235
+ Date.parse(value)
236
+ when :String
237
+ value.to_s
238
+ when :Integer
239
+ value.to_i
240
+ when :Float
241
+ value.to_f
242
+ when :Boolean
243
+ if value.to_s =~ /\A(true|t|yes|y|1)\z/i
244
+ true
245
+ else
246
+ false
247
+ end
248
+ when :Object
249
+ # generic object (usually a Hash), return directly
250
+ value
251
+ when /\AArray<(?<inner_type>.+)>\z/
252
+ inner_type = Regexp.last_match[:inner_type]
253
+ value.map { |v| _deserialize(inner_type, v) }
254
+ when /\AHash<(?<k_type>.+?), (?<v_type>.+)>\z/
255
+ k_type = Regexp.last_match[:k_type]
256
+ v_type = Regexp.last_match[:v_type]
257
+ {}.tap do |hash|
258
+ value.each do |k, v|
259
+ hash[_deserialize(k_type, k)] = _deserialize(v_type, v)
260
+ end
261
+ end
262
+ else # model
263
+ # models (e.g. Pet) or oneOf
264
+ klass = Solifyn.const_get(type)
265
+ klass.respond_to?(:openapi_any_of) || klass.respond_to?(:openapi_one_of) ? klass.build(value) : klass.build_from_hash(value)
266
+ end
267
+ end
268
+
269
+ # Returns the string representation of the object
270
+ # @return [String] String presentation of the object
271
+ def to_s
272
+ to_hash.to_s
273
+ end
274
+
275
+ # to_body is an alias to to_hash (backward compatibility)
276
+ # @return [Hash] Returns the object in the form of hash
277
+ def to_body
278
+ to_hash
279
+ end
280
+
281
+ # Returns the object in the form of hash
282
+ # @return [Hash] Returns the object in the form of hash
283
+ def to_hash
284
+ hash = {}
285
+ self.class.attribute_map.each_pair do |attr, param|
286
+ value = self.send(attr)
287
+ if value.nil?
288
+ is_nullable = self.class.openapi_nullable.include?(attr)
289
+ next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}"))
290
+ end
291
+
292
+ hash[param] = _to_hash(value)
293
+ end
294
+ hash
295
+ end
296
+
297
+ # Outputs non-array value in the form of hash
298
+ # For object, use to_hash. Otherwise, just return the value
299
+ # @param [Object] value Any valid value
300
+ # @return [Hash] Returns the value in the form of hash
301
+ def _to_hash(value)
302
+ if value.is_a?(Array)
303
+ value.compact.map { |v| _to_hash(v) }
304
+ elsif value.is_a?(Hash)
305
+ {}.tap do |hash|
306
+ value.each { |k, v| hash[k] = _to_hash(v) }
307
+ end
308
+ elsif value.respond_to? :to_hash
309
+ value.to_hash
310
+ else
311
+ value
312
+ end
313
+ end
314
+
315
+ end
316
+
317
+ end
@@ -0,0 +1,239 @@
1
+ =begin
2
+ #Solifyn API
3
+
4
+ #Welcome to the Solifyn API Reference. Leverage our secure endpoints to manage products and issue, validate, and manage software license keys programmatically.
5
+
6
+ The version of the OpenAPI document: 1.0.0
7
+
8
+ Generated by: https://openapi-generator.tech
9
+ Generator version: 7.10.0
10
+
11
+ =end
12
+
13
+ require 'date'
14
+ require 'time'
15
+
16
+ module Solifyn
17
+ class LinkedProductDto
18
+ # The unique product ID
19
+ attr_accessor :id
20
+
21
+ # The product name
22
+ attr_accessor :name
23
+
24
+ # Attribute mapping from ruby-style variable name to JSON key.
25
+ def self.attribute_map
26
+ {
27
+ :'id' => :'id',
28
+ :'name' => :'name'
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
+ :'id' => :'String',
41
+ :'name' => :'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 `Solifyn::LinkedProductDto` 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 `Solifyn::LinkedProductDto`. 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?(:'id')
67
+ self.id = attributes[:'id']
68
+ else
69
+ self.id = nil
70
+ end
71
+
72
+ if attributes.key?(:'name')
73
+ self.name = attributes[:'name']
74
+ else
75
+ self.name = nil
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
+ warn '[DEPRECATED] the `list_invalid_properties` method is obsolete'
83
+ invalid_properties = Array.new
84
+ if @id.nil?
85
+ invalid_properties.push('invalid value for "id", id cannot be nil.')
86
+ end
87
+
88
+ if @name.nil?
89
+ invalid_properties.push('invalid value for "name", name cannot be nil.')
90
+ end
91
+
92
+ invalid_properties
93
+ end
94
+
95
+ # Check to see if the all the properties in the model are valid
96
+ # @return true if the model is valid
97
+ def valid?
98
+ warn '[DEPRECATED] the `valid?` method is obsolete'
99
+ return false if @id.nil?
100
+ return false if @name.nil?
101
+ true
102
+ end
103
+
104
+ # Checks equality by comparing each attribute.
105
+ # @param [Object] Object to be compared
106
+ def ==(o)
107
+ return true if self.equal?(o)
108
+ self.class == o.class &&
109
+ id == o.id &&
110
+ name == o.name
111
+ end
112
+
113
+ # @see the `==` method
114
+ # @param [Object] Object to be compared
115
+ def eql?(o)
116
+ self == o
117
+ end
118
+
119
+ # Calculates hash code according to all attributes.
120
+ # @return [Integer] Hash code
121
+ def hash
122
+ [id, name].hash
123
+ end
124
+
125
+ # Builds the object from hash
126
+ # @param [Hash] attributes Model attributes in the form of hash
127
+ # @return [Object] Returns the model itself
128
+ def self.build_from_hash(attributes)
129
+ return nil unless attributes.is_a?(Hash)
130
+ attributes = attributes.transform_keys(&:to_sym)
131
+ transformed_hash = {}
132
+ openapi_types.each_pair do |key, type|
133
+ if attributes.key?(attribute_map[key]) && attributes[attribute_map[key]].nil?
134
+ transformed_hash["#{key}"] = nil
135
+ elsif type =~ /\AArray<(.*)>/i
136
+ # check to ensure the input is an array given that the attribute
137
+ # is documented as an array but the input is not
138
+ if attributes[attribute_map[key]].is_a?(Array)
139
+ transformed_hash["#{key}"] = attributes[attribute_map[key]].map { |v| _deserialize($1, v) }
140
+ end
141
+ elsif !attributes[attribute_map[key]].nil?
142
+ transformed_hash["#{key}"] = _deserialize(type, attributes[attribute_map[key]])
143
+ end
144
+ end
145
+ new(transformed_hash)
146
+ end
147
+
148
+ # Deserializes the data based on type
149
+ # @param string type Data type
150
+ # @param string value Value to be deserialized
151
+ # @return [Object] Deserialized data
152
+ def self._deserialize(type, value)
153
+ case type.to_sym
154
+ when :Time
155
+ Time.parse(value)
156
+ when :Date
157
+ Date.parse(value)
158
+ when :String
159
+ value.to_s
160
+ when :Integer
161
+ value.to_i
162
+ when :Float
163
+ value.to_f
164
+ when :Boolean
165
+ if value.to_s =~ /\A(true|t|yes|y|1)\z/i
166
+ true
167
+ else
168
+ false
169
+ end
170
+ when :Object
171
+ # generic object (usually a Hash), return directly
172
+ value
173
+ when /\AArray<(?<inner_type>.+)>\z/
174
+ inner_type = Regexp.last_match[:inner_type]
175
+ value.map { |v| _deserialize(inner_type, v) }
176
+ when /\AHash<(?<k_type>.+?), (?<v_type>.+)>\z/
177
+ k_type = Regexp.last_match[:k_type]
178
+ v_type = Regexp.last_match[:v_type]
179
+ {}.tap do |hash|
180
+ value.each do |k, v|
181
+ hash[_deserialize(k_type, k)] = _deserialize(v_type, v)
182
+ end
183
+ end
184
+ else # model
185
+ # models (e.g. Pet) or oneOf
186
+ klass = Solifyn.const_get(type)
187
+ klass.respond_to?(:openapi_any_of) || klass.respond_to?(:openapi_one_of) ? klass.build(value) : klass.build_from_hash(value)
188
+ end
189
+ end
190
+
191
+ # Returns the string representation of the object
192
+ # @return [String] String presentation of the object
193
+ def to_s
194
+ to_hash.to_s
195
+ end
196
+
197
+ # to_body is an alias to to_hash (backward compatibility)
198
+ # @return [Hash] Returns the object in the form of hash
199
+ def to_body
200
+ to_hash
201
+ end
202
+
203
+ # Returns the object in the form of hash
204
+ # @return [Hash] Returns the object in the form of hash
205
+ def to_hash
206
+ hash = {}
207
+ self.class.attribute_map.each_pair do |attr, param|
208
+ value = self.send(attr)
209
+ if value.nil?
210
+ is_nullable = self.class.openapi_nullable.include?(attr)
211
+ next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}"))
212
+ end
213
+
214
+ hash[param] = _to_hash(value)
215
+ end
216
+ hash
217
+ end
218
+
219
+ # Outputs non-array value in the form of hash
220
+ # For object, use to_hash. Otherwise, just return the value
221
+ # @param [Object] value Any valid value
222
+ # @return [Hash] Returns the value in the form of hash
223
+ def _to_hash(value)
224
+ if value.is_a?(Array)
225
+ value.compact.map { |v| _to_hash(v) }
226
+ elsif value.is_a?(Hash)
227
+ {}.tap do |hash|
228
+ value.each { |k, v| hash[k] = _to_hash(v) }
229
+ end
230
+ elsif value.respond_to? :to_hash
231
+ value.to_hash
232
+ else
233
+ value
234
+ end
235
+ end
236
+
237
+ end
238
+
239
+ end
@@ -60,6 +60,12 @@ module Solifyn
60
60
  # Discord Role ID to assign to the user.
61
61
  attr_accessor :discord_role_id
62
62
 
63
+ # Whether the purchase includes Framer Template access.
64
+ attr_accessor :has_framer_access
65
+
66
+ # Framer Template ID to grant access to.
67
+ attr_accessor :framer_template_id
68
+
63
69
  # Whether tax is included in the base price.
64
70
  attr_accessor :is_tax_inclusive
65
71
 
@@ -102,6 +108,9 @@ module Solifyn
102
108
  # Product addons configurations.
103
109
  attr_accessor :addons
104
110
 
111
+ # Array of independent entitlement IDs to link to this product.
112
+ attr_accessor :entitlement_ids
113
+
105
114
  class EnumAttributeValidator
106
115
  attr_reader :datatype
107
116
  attr_reader :allowable_values
@@ -142,6 +151,8 @@ module Solifyn
142
151
  :'has_discord_access' => :'hasDiscordAccess',
143
152
  :'discord_guild_id' => :'discordGuildId',
144
153
  :'discord_role_id' => :'discordRoleId',
154
+ :'has_framer_access' => :'hasFramerAccess',
155
+ :'framer_template_id' => :'framerTemplateId',
145
156
  :'is_tax_inclusive' => :'isTaxInclusive',
146
157
  :'activation_limit' => :'activationLimit',
147
158
  :'brand_id' => :'brandId',
@@ -155,7 +166,8 @@ module Solifyn
155
166
  :'stock' => :'stock',
156
167
  :'is_listed' => :'isListed',
157
168
  :'is_free' => :'isFree',
158
- :'addons' => :'addons'
169
+ :'addons' => :'addons',
170
+ :'entitlement_ids' => :'entitlementIds'
159
171
  }
160
172
  end
161
173
 
@@ -182,6 +194,8 @@ module Solifyn
182
194
  :'has_discord_access' => :'Boolean',
183
195
  :'discord_guild_id' => :'String',
184
196
  :'discord_role_id' => :'String',
197
+ :'has_framer_access' => :'Boolean',
198
+ :'framer_template_id' => :'String',
185
199
  :'is_tax_inclusive' => :'Boolean',
186
200
  :'activation_limit' => :'Integer',
187
201
  :'brand_id' => :'String',
@@ -195,7 +209,8 @@ module Solifyn
195
209
  :'stock' => :'Integer',
196
210
  :'is_listed' => :'Boolean',
197
211
  :'is_free' => :'Boolean',
198
- :'addons' => :'Array<ProductCreateAddonsInner>'
212
+ :'addons' => :'Array<ProductCreateAddonsInner>',
213
+ :'entitlement_ids' => :'Array<String>'
199
214
  }
200
215
  end
201
216
 
@@ -296,6 +311,16 @@ module Solifyn
296
311
  self.discord_role_id = attributes[:'discord_role_id']
297
312
  end
298
313
 
314
+ if attributes.key?(:'has_framer_access')
315
+ self.has_framer_access = attributes[:'has_framer_access']
316
+ else
317
+ self.has_framer_access = false
318
+ end
319
+
320
+ if attributes.key?(:'framer_template_id')
321
+ self.framer_template_id = attributes[:'framer_template_id']
322
+ end
323
+
299
324
  if attributes.key?(:'is_tax_inclusive')
300
325
  self.is_tax_inclusive = attributes[:'is_tax_inclusive']
301
326
  else
@@ -365,6 +390,12 @@ module Solifyn
365
390
  self.addons = value
366
391
  end
367
392
  end
393
+
394
+ if attributes.key?(:'entitlement_ids')
395
+ if (value = attributes[:'entitlement_ids']).is_a?(Array)
396
+ self.entitlement_ids = value
397
+ end
398
+ end
368
399
  end
369
400
 
370
401
  # Show invalid properties with the reasons. Usually used together with valid?
@@ -458,6 +489,8 @@ module Solifyn
458
489
  has_discord_access == o.has_discord_access &&
459
490
  discord_guild_id == o.discord_guild_id &&
460
491
  discord_role_id == o.discord_role_id &&
492
+ has_framer_access == o.has_framer_access &&
493
+ framer_template_id == o.framer_template_id &&
461
494
  is_tax_inclusive == o.is_tax_inclusive &&
462
495
  activation_limit == o.activation_limit &&
463
496
  brand_id == o.brand_id &&
@@ -471,7 +504,8 @@ module Solifyn
471
504
  stock == o.stock &&
472
505
  is_listed == o.is_listed &&
473
506
  is_free == o.is_free &&
474
- addons == o.addons
507
+ addons == o.addons &&
508
+ entitlement_ids == o.entitlement_ids
475
509
  end
476
510
 
477
511
  # @see the `==` method
@@ -483,7 +517,7 @@ module Solifyn
483
517
  # Calculates hash code according to all attributes.
484
518
  # @return [Integer] Hash code
485
519
  def hash
486
- [name, description, price, currency, image_url, tax_category, discount, has_license_key, has_digital_delivery, has_github_access, github_repo, github_permission, has_discord_access, discord_guild_id, discord_role_id, is_tax_inclusive, activation_limit, brand_id, billing_period, trial_period_days, expiration_days, statement_descriptor, pay_what_you_want, metadata, custom_fields, stock, is_listed, is_free, addons].hash
520
+ [name, description, price, currency, image_url, tax_category, discount, has_license_key, has_digital_delivery, has_github_access, github_repo, github_permission, has_discord_access, discord_guild_id, discord_role_id, has_framer_access, framer_template_id, is_tax_inclusive, activation_limit, brand_id, billing_period, trial_period_days, expiration_days, statement_descriptor, pay_what_you_want, metadata, custom_fields, stock, is_listed, is_free, addons, entitlement_ids].hash
487
521
  end
488
522
 
489
523
  # Builds the object from hash