late-sdk 0.0.899 → 0.0.900

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 (84) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +21 -2
  3. data/docs/AdAccountsApi.md +463 -3
  4. data/docs/AdCampaignsApi.md +4 -4
  5. data/docs/AdTracking.md +20 -0
  6. data/docs/CreateAdCampaign200Response.md +26 -0
  7. data/docs/CreateAdCampaignRequest.md +8 -0
  8. data/docs/CreateCallAdRequest.md +2 -0
  9. data/docs/CreateMessagingAdRequest.md +2 -0
  10. data/docs/CreateStandaloneAdRequest.md +11 -3
  11. data/docs/CtwaAdRequestBody.md +2 -0
  12. data/docs/GetAdComments200ResponseMeta.md +10 -4
  13. data/docs/GetIosFourteenCampaignLimits200Response.md +18 -0
  14. data/docs/GetIosFourteenCampaignLimits200ResponseLimits.md +22 -0
  15. data/docs/HideAdComment200Response.md +22 -0
  16. data/docs/HideAdCommentRequest.md +18 -0
  17. data/docs/ListAdsInstagramAccounts200Response.md +22 -0
  18. data/docs/ListAdsInstagramAccounts200ResponseAccountsInner.md +26 -0
  19. data/docs/ListAdsInstagramAccounts200ResponsePagesInner.md +24 -0
  20. data/docs/ListAdsInstagramAccounts200ResponseResolved.md +22 -0
  21. data/docs/ListAdvertisableApplications200Response.md +18 -0
  22. data/docs/ListAdvertisableApplications200ResponseApplicationsInner.md +24 -0
  23. data/docs/MetaInstagramIdentityRef.md +22 -0
  24. data/docs/ReplyToAdComment200Response.md +20 -0
  25. data/docs/ReplyToAdCommentRequest.md +18 -0
  26. data/docs/TargetingSpec.md +4 -0
  27. data/lib/zernio-sdk/api/ad_accounts_api.rb +512 -4
  28. data/lib/zernio-sdk/api/ad_campaigns_api.rb +3 -3
  29. data/lib/zernio-sdk/models/{create_standalone_ad_request_tracking.rb → ad_tracking.rb} +5 -5
  30. data/lib/zernio-sdk/models/create_ad_campaign200_response.rb +231 -0
  31. data/lib/zernio-sdk/models/create_ad_campaign_request.rb +52 -1
  32. data/lib/zernio-sdk/models/create_call_ad_request.rb +10 -1
  33. data/lib/zernio-sdk/models/create_messaging_ad_request.rb +10 -1
  34. data/lib/zernio-sdk/models/create_standalone_ad_request.rb +98 -4
  35. data/lib/zernio-sdk/models/ctwa_ad_request_body.rb +10 -1
  36. data/lib/zernio-sdk/models/get_ad_comments200_response_meta.rb +36 -46
  37. data/lib/zernio-sdk/models/get_ios_fourteen_campaign_limits200_response.rb +164 -0
  38. data/lib/zernio-sdk/models/get_ios_fourteen_campaign_limits200_response_limits.rb +172 -0
  39. data/lib/zernio-sdk/models/hide_ad_comment200_response.rb +225 -0
  40. data/lib/zernio-sdk/models/hide_ad_comment_request.rb +165 -0
  41. data/lib/zernio-sdk/models/list_ads_instagram_accounts200_response.rb +220 -0
  42. data/lib/zernio-sdk/models/list_ads_instagram_accounts200_response_accounts_inner.rb +287 -0
  43. data/lib/zernio-sdk/models/list_ads_instagram_accounts200_response_pages_inner.rb +210 -0
  44. data/lib/zernio-sdk/models/list_ads_instagram_accounts200_response_resolved.rb +211 -0
  45. data/lib/zernio-sdk/models/list_advertisable_applications200_response.rb +166 -0
  46. data/lib/zernio-sdk/models/list_advertisable_applications200_response_applications_inner.rb +250 -0
  47. data/lib/zernio-sdk/models/meta_instagram_identity_ref.rb +202 -0
  48. data/lib/zernio-sdk/models/reply_to_ad_comment200_response.rb +215 -0
  49. data/lib/zernio-sdk/models/reply_to_ad_comment_request.rb +174 -0
  50. data/lib/zernio-sdk/models/targeting_spec.rb +63 -1
  51. data/lib/zernio-sdk/version.rb +1 -1
  52. data/lib/zernio-sdk.rb +15 -2
  53. data/openapi.yaml +618 -143
  54. data/spec/api/ad_accounts_api_spec.rb +91 -2
  55. data/spec/api/ad_campaigns_api_spec.rb +1 -1
  56. data/spec/models/{create_standalone_ad_request_tracking_spec.rb → ad_tracking_spec.rb} +6 -6
  57. data/spec/models/create_ad_campaign200_response_spec.rb +68 -0
  58. data/spec/models/create_ad_campaign_request_spec.rb +28 -0
  59. data/spec/models/create_call_ad_request_spec.rb +6 -0
  60. data/spec/models/create_messaging_ad_request_spec.rb +6 -0
  61. data/spec/models/create_standalone_ad_request_spec.rb +28 -0
  62. data/spec/models/ctwa_ad_request_body_spec.rb +6 -0
  63. data/spec/models/get_ad_comments200_response_meta_spec.rb +19 -1
  64. data/spec/models/get_ios_fourteen_campaign_limits200_response_limits_spec.rb +48 -0
  65. data/spec/models/get_ios_fourteen_campaign_limits200_response_spec.rb +36 -0
  66. data/spec/models/hide_ad_comment200_response_spec.rb +52 -0
  67. data/spec/models/hide_ad_comment_request_spec.rb +36 -0
  68. data/spec/models/list_ads_instagram_accounts200_response_accounts_inner_spec.rb +64 -0
  69. data/spec/models/list_ads_instagram_accounts200_response_pages_inner_spec.rb +54 -0
  70. data/spec/models/list_ads_instagram_accounts200_response_resolved_spec.rb +52 -0
  71. data/spec/models/list_ads_instagram_accounts200_response_spec.rb +48 -0
  72. data/spec/models/list_advertisable_applications200_response_applications_inner_spec.rb +54 -0
  73. data/spec/models/list_advertisable_applications200_response_spec.rb +36 -0
  74. data/spec/models/meta_instagram_identity_ref_spec.rb +48 -0
  75. data/spec/models/reply_to_ad_comment200_response_spec.rb +46 -0
  76. data/spec/models/reply_to_ad_comment_request_spec.rb +36 -0
  77. data/spec/models/targeting_spec_spec.rb +12 -0
  78. data/zernio-sdk-0.0.900.gem +0 -0
  79. metadata +62 -10
  80. data/docs/CreateStandaloneAdRequestPromotedObject.md +0 -38
  81. data/docs/CreateStandaloneAdRequestTracking.md +0 -20
  82. data/lib/zernio-sdk/models/create_standalone_ad_request_promoted_object.rb +0 -249
  83. data/spec/models/create_standalone_ad_request_promoted_object_spec.rb +0 -96
  84. data/zernio-sdk-0.0.899.gem +0 -0
@@ -0,0 +1,287 @@
1
+ =begin
2
+ #Zernio API
3
+
4
+ #API reference for Zernio. Authenticate with a Bearer API key. Base URL: https://zernio.com/api Versioning and deprecation: all endpoints are versioned in the URL path (current version: /v1). Breaking changes only ship in a new path version; existing versions keep working. Deprecated operations are marked 'deprecated: true' in this spec and announced in the changelog (https://zernio.com/changelog) before removal. Errors: every 4xx/5xx response is application/json with a machine-readable 'code' and a human-readable 'error' message (see the ErrorResponse schema).
5
+
6
+ The version of the OpenAPI document: 1.0.4
7
+ Contact: support@zernio.com
8
+ Generated by: https://openapi-generator.tech
9
+ Generator version: 7.19.0
10
+
11
+ =end
12
+
13
+ require 'date'
14
+ require 'time'
15
+
16
+ module Zernio
17
+ class ListAdsInstagramAccounts200ResponseAccountsInner < ApiModelBase
18
+ # Instagram identity ID.
19
+ attr_accessor :ig_user_id
20
+
21
+ # Instagram username; empty when Meta does not expose it.
22
+ attr_accessor :username
23
+
24
+ # Profile picture URL when available.
25
+ attr_accessor :profile_picture_url
26
+
27
+ # Whether this is a Page-backed Instagram identity.
28
+ attr_accessor :is_page_backed
29
+
30
+ # Discovery source; Page linkage also uses page_backed.
31
+ attr_accessor :source
32
+
33
+ class EnumAttributeValidator
34
+ attr_reader :datatype
35
+ attr_reader :allowable_values
36
+
37
+ def initialize(datatype, allowable_values)
38
+ @allowable_values = allowable_values.map do |value|
39
+ case datatype.to_s
40
+ when /Integer/i
41
+ value.to_i
42
+ when /Float/i
43
+ value.to_f
44
+ else
45
+ value
46
+ end
47
+ end
48
+ end
49
+
50
+ def valid?(value)
51
+ !value || allowable_values.include?(value)
52
+ end
53
+ end
54
+
55
+ # Attribute mapping from ruby-style variable name to JSON key.
56
+ def self.attribute_map
57
+ {
58
+ :'ig_user_id' => :'igUserId',
59
+ :'username' => :'username',
60
+ :'profile_picture_url' => :'profilePictureUrl',
61
+ :'is_page_backed' => :'isPageBacked',
62
+ :'source' => :'source'
63
+ }
64
+ end
65
+
66
+ # Returns attribute mapping this model knows about
67
+ def self.acceptable_attribute_map
68
+ attribute_map
69
+ end
70
+
71
+ # Returns all the JSON keys this model knows about
72
+ def self.acceptable_attributes
73
+ acceptable_attribute_map.values
74
+ end
75
+
76
+ # Attribute type mapping.
77
+ def self.openapi_types
78
+ {
79
+ :'ig_user_id' => :'String',
80
+ :'username' => :'String',
81
+ :'profile_picture_url' => :'String',
82
+ :'is_page_backed' => :'Boolean',
83
+ :'source' => :'String'
84
+ }
85
+ end
86
+
87
+ # List of attributes with nullable: true
88
+ def self.openapi_nullable
89
+ Set.new([
90
+ ])
91
+ end
92
+
93
+ # List of class defined in allOf (OpenAPI v3)
94
+ def self.openapi_all_of
95
+ [
96
+ :'MetaInstagramIdentityRef'
97
+ ]
98
+ end
99
+
100
+ # Initializes the object
101
+ # @param [Hash] attributes Model attributes in the form of hash
102
+ def initialize(attributes = {})
103
+ if (!attributes.is_a?(Hash))
104
+ fail ArgumentError, "The input argument (attributes) must be a hash in `Zernio::ListAdsInstagramAccounts200ResponseAccountsInner` initialize method"
105
+ end
106
+
107
+ # check to see if the attribute exists and convert string to symbol for hash key
108
+ acceptable_attribute_map = self.class.acceptable_attribute_map
109
+ attributes = attributes.each_with_object({}) { |(k, v), h|
110
+ if (!acceptable_attribute_map.key?(k.to_sym))
111
+ fail ArgumentError, "`#{k}` is not a valid attribute in `Zernio::ListAdsInstagramAccounts200ResponseAccountsInner`. Please check the name to make sure it's valid. List of attributes: " + acceptable_attribute_map.keys.inspect
112
+ end
113
+ h[k.to_sym] = v
114
+ }
115
+
116
+ if attributes.key?(:'ig_user_id')
117
+ self.ig_user_id = attributes[:'ig_user_id']
118
+ else
119
+ self.ig_user_id = nil
120
+ end
121
+
122
+ if attributes.key?(:'username')
123
+ self.username = attributes[:'username']
124
+ else
125
+ self.username = nil
126
+ end
127
+
128
+ if attributes.key?(:'profile_picture_url')
129
+ self.profile_picture_url = attributes[:'profile_picture_url']
130
+ end
131
+
132
+ if attributes.key?(:'is_page_backed')
133
+ self.is_page_backed = attributes[:'is_page_backed']
134
+ else
135
+ self.is_page_backed = nil
136
+ end
137
+
138
+ if attributes.key?(:'source')
139
+ self.source = attributes[:'source']
140
+ else
141
+ self.source = nil
142
+ end
143
+ end
144
+
145
+ # Show invalid properties with the reasons. Usually used together with valid?
146
+ # @return Array for valid properties with the reasons
147
+ def list_invalid_properties
148
+ warn '[DEPRECATED] the `list_invalid_properties` method is obsolete'
149
+ invalid_properties = Array.new
150
+ if @ig_user_id.nil?
151
+ invalid_properties.push('invalid value for "ig_user_id", ig_user_id cannot be nil.')
152
+ end
153
+
154
+ if @username.nil?
155
+ invalid_properties.push('invalid value for "username", username cannot be nil.')
156
+ end
157
+
158
+ if @is_page_backed.nil?
159
+ invalid_properties.push('invalid value for "is_page_backed", is_page_backed cannot be nil.')
160
+ end
161
+
162
+ if @source.nil?
163
+ invalid_properties.push('invalid value for "source", source cannot be nil.')
164
+ end
165
+
166
+ invalid_properties
167
+ end
168
+
169
+ # Check to see if the all the properties in the model are valid
170
+ # @return true if the model is valid
171
+ def valid?
172
+ warn '[DEPRECATED] the `valid?` method is obsolete'
173
+ return false if @ig_user_id.nil?
174
+ return false if @username.nil?
175
+ return false if @is_page_backed.nil?
176
+ return false if @source.nil?
177
+ source_validator = EnumAttributeValidator.new('String', ["ad_account", "page_backed", "business"])
178
+ return false unless source_validator.valid?(@source)
179
+ true
180
+ end
181
+
182
+ # Custom attribute writer method with validation
183
+ # @param [Object] ig_user_id Value to be assigned
184
+ def ig_user_id=(ig_user_id)
185
+ if ig_user_id.nil?
186
+ fail ArgumentError, 'ig_user_id cannot be nil'
187
+ end
188
+
189
+ @ig_user_id = ig_user_id
190
+ end
191
+
192
+ # Custom attribute writer method with validation
193
+ # @param [Object] username Value to be assigned
194
+ def username=(username)
195
+ if username.nil?
196
+ fail ArgumentError, 'username cannot be nil'
197
+ end
198
+
199
+ @username = username
200
+ end
201
+
202
+ # Custom attribute writer method with validation
203
+ # @param [Object] is_page_backed Value to be assigned
204
+ def is_page_backed=(is_page_backed)
205
+ if is_page_backed.nil?
206
+ fail ArgumentError, 'is_page_backed cannot be nil'
207
+ end
208
+
209
+ @is_page_backed = is_page_backed
210
+ end
211
+
212
+ # Custom attribute writer method checking allowed values (enum).
213
+ # @param [Object] source Object to be assigned
214
+ def source=(source)
215
+ validator = EnumAttributeValidator.new('String', ["ad_account", "page_backed", "business"])
216
+ unless validator.valid?(source)
217
+ fail ArgumentError, "invalid value for \"source\", must be one of #{validator.allowable_values}."
218
+ end
219
+ @source = source
220
+ end
221
+
222
+ # Checks equality by comparing each attribute.
223
+ # @param [Object] Object to be compared
224
+ def ==(o)
225
+ return true if self.equal?(o)
226
+ self.class == o.class &&
227
+ ig_user_id == o.ig_user_id &&
228
+ username == o.username &&
229
+ profile_picture_url == o.profile_picture_url &&
230
+ is_page_backed == o.is_page_backed &&
231
+ source == o.source
232
+ end
233
+
234
+ # @see the `==` method
235
+ # @param [Object] Object to be compared
236
+ def eql?(o)
237
+ self == o
238
+ end
239
+
240
+ # Calculates hash code according to all attributes.
241
+ # @return [Integer] Hash code
242
+ def hash
243
+ [ig_user_id, username, profile_picture_url, is_page_backed, source].hash
244
+ end
245
+
246
+ # Builds the object from hash
247
+ # @param [Hash] attributes Model attributes in the form of hash
248
+ # @return [Object] Returns the model itself
249
+ def self.build_from_hash(attributes)
250
+ return nil unless attributes.is_a?(Hash)
251
+ attributes = attributes.transform_keys(&:to_sym)
252
+ transformed_hash = {}
253
+ openapi_types.each_pair do |key, type|
254
+ if attributes.key?(attribute_map[key]) && attributes[attribute_map[key]].nil?
255
+ transformed_hash["#{key}"] = nil
256
+ elsif type =~ /\AArray<(.*)>/i
257
+ # check to ensure the input is an array given that the attribute
258
+ # is documented as an array but the input is not
259
+ if attributes[attribute_map[key]].is_a?(Array)
260
+ transformed_hash["#{key}"] = attributes[attribute_map[key]].map { |v| _deserialize($1, v) }
261
+ end
262
+ elsif !attributes[attribute_map[key]].nil?
263
+ transformed_hash["#{key}"] = _deserialize(type, attributes[attribute_map[key]])
264
+ end
265
+ end
266
+ new(transformed_hash)
267
+ end
268
+
269
+ # Returns the object in the form of hash
270
+ # @return [Hash] Returns the object in the form of hash
271
+ def to_hash
272
+ hash = {}
273
+ self.class.attribute_map.each_pair do |attr, param|
274
+ value = self.send(attr)
275
+ if value.nil?
276
+ is_nullable = self.class.openapi_nullable.include?(attr)
277
+ next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}"))
278
+ end
279
+
280
+ hash[param] = _to_hash(value)
281
+ end
282
+ hash
283
+ end
284
+
285
+ end
286
+
287
+ end
@@ -0,0 +1,210 @@
1
+ =begin
2
+ #Zernio API
3
+
4
+ #API reference for Zernio. Authenticate with a Bearer API key. Base URL: https://zernio.com/api Versioning and deprecation: all endpoints are versioned in the URL path (current version: /v1). Breaking changes only ship in a new path version; existing versions keep working. Deprecated operations are marked 'deprecated: true' in this spec and announced in the changelog (https://zernio.com/changelog) before removal. Errors: every 4xx/5xx response is application/json with a machine-readable 'code' and a human-readable 'error' message (see the ErrorResponse schema).
5
+
6
+ The version of the OpenAPI document: 1.0.4
7
+ Contact: support@zernio.com
8
+ Generated by: https://openapi-generator.tech
9
+ Generator version: 7.19.0
10
+
11
+ =end
12
+
13
+ require 'date'
14
+ require 'time'
15
+
16
+ module Zernio
17
+ class ListAdsInstagramAccounts200ResponsePagesInner < ApiModelBase
18
+ # Facebook Page ID.
19
+ attr_accessor :page_id
20
+
21
+ # Facebook Page name.
22
+ attr_accessor :name
23
+
24
+ attr_accessor :instagram_business_account
25
+
26
+ attr_accessor :connected_instagram_account
27
+
28
+ # Attribute mapping from ruby-style variable name to JSON key.
29
+ def self.attribute_map
30
+ {
31
+ :'page_id' => :'pageId',
32
+ :'name' => :'name',
33
+ :'instagram_business_account' => :'instagramBusinessAccount',
34
+ :'connected_instagram_account' => :'connectedInstagramAccount'
35
+ }
36
+ end
37
+
38
+ # Returns attribute mapping this model knows about
39
+ def self.acceptable_attribute_map
40
+ attribute_map
41
+ end
42
+
43
+ # Returns all the JSON keys this model knows about
44
+ def self.acceptable_attributes
45
+ acceptable_attribute_map.values
46
+ end
47
+
48
+ # Attribute type mapping.
49
+ def self.openapi_types
50
+ {
51
+ :'page_id' => :'String',
52
+ :'name' => :'String',
53
+ :'instagram_business_account' => :'MetaInstagramIdentityRef',
54
+ :'connected_instagram_account' => :'MetaInstagramIdentityRef'
55
+ }
56
+ end
57
+
58
+ # List of attributes with nullable: true
59
+ def self.openapi_nullable
60
+ Set.new([
61
+ ])
62
+ end
63
+
64
+ # Initializes the object
65
+ # @param [Hash] attributes Model attributes in the form of hash
66
+ def initialize(attributes = {})
67
+ if (!attributes.is_a?(Hash))
68
+ fail ArgumentError, "The input argument (attributes) must be a hash in `Zernio::ListAdsInstagramAccounts200ResponsePagesInner` initialize method"
69
+ end
70
+
71
+ # check to see if the attribute exists and convert string to symbol for hash key
72
+ acceptable_attribute_map = self.class.acceptable_attribute_map
73
+ attributes = attributes.each_with_object({}) { |(k, v), h|
74
+ if (!acceptable_attribute_map.key?(k.to_sym))
75
+ fail ArgumentError, "`#{k}` is not a valid attribute in `Zernio::ListAdsInstagramAccounts200ResponsePagesInner`. Please check the name to make sure it's valid. List of attributes: " + acceptable_attribute_map.keys.inspect
76
+ end
77
+ h[k.to_sym] = v
78
+ }
79
+
80
+ if attributes.key?(:'page_id')
81
+ self.page_id = attributes[:'page_id']
82
+ else
83
+ self.page_id = nil
84
+ end
85
+
86
+ if attributes.key?(:'name')
87
+ self.name = attributes[:'name']
88
+ else
89
+ self.name = nil
90
+ end
91
+
92
+ if attributes.key?(:'instagram_business_account')
93
+ self.instagram_business_account = attributes[:'instagram_business_account']
94
+ end
95
+
96
+ if attributes.key?(:'connected_instagram_account')
97
+ self.connected_instagram_account = attributes[:'connected_instagram_account']
98
+ end
99
+ end
100
+
101
+ # Show invalid properties with the reasons. Usually used together with valid?
102
+ # @return Array for valid properties with the reasons
103
+ def list_invalid_properties
104
+ warn '[DEPRECATED] the `list_invalid_properties` method is obsolete'
105
+ invalid_properties = Array.new
106
+ if @page_id.nil?
107
+ invalid_properties.push('invalid value for "page_id", page_id cannot be nil.')
108
+ end
109
+
110
+ if @name.nil?
111
+ invalid_properties.push('invalid value for "name", name cannot be nil.')
112
+ end
113
+
114
+ invalid_properties
115
+ end
116
+
117
+ # Check to see if the all the properties in the model are valid
118
+ # @return true if the model is valid
119
+ def valid?
120
+ warn '[DEPRECATED] the `valid?` method is obsolete'
121
+ return false if @page_id.nil?
122
+ return false if @name.nil?
123
+ true
124
+ end
125
+
126
+ # Custom attribute writer method with validation
127
+ # @param [Object] page_id Value to be assigned
128
+ def page_id=(page_id)
129
+ if page_id.nil?
130
+ fail ArgumentError, 'page_id cannot be nil'
131
+ end
132
+
133
+ @page_id = page_id
134
+ end
135
+
136
+ # Custom attribute writer method with validation
137
+ # @param [Object] name Value to be assigned
138
+ def name=(name)
139
+ if name.nil?
140
+ fail ArgumentError, 'name cannot be nil'
141
+ end
142
+
143
+ @name = name
144
+ end
145
+
146
+ # Checks equality by comparing each attribute.
147
+ # @param [Object] Object to be compared
148
+ def ==(o)
149
+ return true if self.equal?(o)
150
+ self.class == o.class &&
151
+ page_id == o.page_id &&
152
+ name == o.name &&
153
+ instagram_business_account == o.instagram_business_account &&
154
+ connected_instagram_account == o.connected_instagram_account
155
+ end
156
+
157
+ # @see the `==` method
158
+ # @param [Object] Object to be compared
159
+ def eql?(o)
160
+ self == o
161
+ end
162
+
163
+ # Calculates hash code according to all attributes.
164
+ # @return [Integer] Hash code
165
+ def hash
166
+ [page_id, name, instagram_business_account, connected_instagram_account].hash
167
+ end
168
+
169
+ # Builds the object from hash
170
+ # @param [Hash] attributes Model attributes in the form of hash
171
+ # @return [Object] Returns the model itself
172
+ def self.build_from_hash(attributes)
173
+ return nil unless attributes.is_a?(Hash)
174
+ attributes = attributes.transform_keys(&:to_sym)
175
+ transformed_hash = {}
176
+ openapi_types.each_pair do |key, type|
177
+ if attributes.key?(attribute_map[key]) && attributes[attribute_map[key]].nil?
178
+ transformed_hash["#{key}"] = nil
179
+ elsif type =~ /\AArray<(.*)>/i
180
+ # check to ensure the input is an array given that the attribute
181
+ # is documented as an array but the input is not
182
+ if attributes[attribute_map[key]].is_a?(Array)
183
+ transformed_hash["#{key}"] = attributes[attribute_map[key]].map { |v| _deserialize($1, v) }
184
+ end
185
+ elsif !attributes[attribute_map[key]].nil?
186
+ transformed_hash["#{key}"] = _deserialize(type, attributes[attribute_map[key]])
187
+ end
188
+ end
189
+ new(transformed_hash)
190
+ end
191
+
192
+ # Returns the object in the form of hash
193
+ # @return [Hash] Returns the object in the form of hash
194
+ def to_hash
195
+ hash = {}
196
+ self.class.attribute_map.each_pair do |attr, param|
197
+ value = self.send(attr)
198
+ if value.nil?
199
+ is_nullable = self.class.openapi_nullable.include?(attr)
200
+ next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}"))
201
+ end
202
+
203
+ hash[param] = _to_hash(value)
204
+ end
205
+ hash
206
+ end
207
+
208
+ end
209
+
210
+ end
@@ -0,0 +1,211 @@
1
+ =begin
2
+ #Zernio API
3
+
4
+ #API reference for Zernio. Authenticate with a Bearer API key. Base URL: https://zernio.com/api Versioning and deprecation: all endpoints are versioned in the URL path (current version: /v1). Breaking changes only ship in a new path version; existing versions keep working. Deprecated operations are marked 'deprecated: true' in this spec and announced in the changelog (https://zernio.com/changelog) before removal. Errors: every 4xx/5xx response is application/json with a machine-readable 'code' and a human-readable 'error' message (see the ErrorResponse schema).
5
+
6
+ The version of the OpenAPI document: 1.0.4
7
+ Contact: support@zernio.com
8
+ Generated by: https://openapi-generator.tech
9
+ Generator version: 7.19.0
10
+
11
+ =end
12
+
13
+ require 'date'
14
+ require 'time'
15
+
16
+ module Zernio
17
+ class ListAdsInstagramAccounts200ResponseResolved < ApiModelBase
18
+ # Page selected by the shared ad-creation resolver.
19
+ attr_accessor :page_id
20
+
21
+ # Instagram identity selected by the shared ad-creation resolver.
22
+ attr_accessor :ig_user_id
23
+
24
+ # Discovery source of the resolved identity; null when absent from discovery.
25
+ attr_accessor :source
26
+
27
+ class EnumAttributeValidator
28
+ attr_reader :datatype
29
+ attr_reader :allowable_values
30
+
31
+ def initialize(datatype, allowable_values)
32
+ @allowable_values = allowable_values.map do |value|
33
+ case datatype.to_s
34
+ when /Integer/i
35
+ value.to_i
36
+ when /Float/i
37
+ value.to_f
38
+ else
39
+ value
40
+ end
41
+ end
42
+ end
43
+
44
+ def valid?(value)
45
+ !value || allowable_values.include?(value)
46
+ end
47
+ end
48
+
49
+ # Attribute mapping from ruby-style variable name to JSON key.
50
+ def self.attribute_map
51
+ {
52
+ :'page_id' => :'pageId',
53
+ :'ig_user_id' => :'igUserId',
54
+ :'source' => :'source'
55
+ }
56
+ end
57
+
58
+ # Returns attribute mapping this model knows about
59
+ def self.acceptable_attribute_map
60
+ attribute_map
61
+ end
62
+
63
+ # Returns all the JSON keys this model knows about
64
+ def self.acceptable_attributes
65
+ acceptable_attribute_map.values
66
+ end
67
+
68
+ # Attribute type mapping.
69
+ def self.openapi_types
70
+ {
71
+ :'page_id' => :'String',
72
+ :'ig_user_id' => :'String',
73
+ :'source' => :'String'
74
+ }
75
+ end
76
+
77
+ # List of attributes with nullable: true
78
+ def self.openapi_nullable
79
+ Set.new([
80
+ :'page_id',
81
+ :'ig_user_id',
82
+ :'source'
83
+ ])
84
+ end
85
+
86
+ # Initializes the object
87
+ # @param [Hash] attributes Model attributes in the form of hash
88
+ def initialize(attributes = {})
89
+ if (!attributes.is_a?(Hash))
90
+ fail ArgumentError, "The input argument (attributes) must be a hash in `Zernio::ListAdsInstagramAccounts200ResponseResolved` initialize method"
91
+ end
92
+
93
+ # check to see if the attribute exists and convert string to symbol for hash key
94
+ acceptable_attribute_map = self.class.acceptable_attribute_map
95
+ attributes = attributes.each_with_object({}) { |(k, v), h|
96
+ if (!acceptable_attribute_map.key?(k.to_sym))
97
+ fail ArgumentError, "`#{k}` is not a valid attribute in `Zernio::ListAdsInstagramAccounts200ResponseResolved`. Please check the name to make sure it's valid. List of attributes: " + acceptable_attribute_map.keys.inspect
98
+ end
99
+ h[k.to_sym] = v
100
+ }
101
+
102
+ if attributes.key?(:'page_id')
103
+ self.page_id = attributes[:'page_id']
104
+ else
105
+ self.page_id = nil
106
+ end
107
+
108
+ if attributes.key?(:'ig_user_id')
109
+ self.ig_user_id = attributes[:'ig_user_id']
110
+ else
111
+ self.ig_user_id = nil
112
+ end
113
+
114
+ if attributes.key?(:'source')
115
+ self.source = attributes[:'source']
116
+ else
117
+ self.source = nil
118
+ end
119
+ end
120
+
121
+ # Show invalid properties with the reasons. Usually used together with valid?
122
+ # @return Array for valid properties with the reasons
123
+ def list_invalid_properties
124
+ warn '[DEPRECATED] the `list_invalid_properties` method is obsolete'
125
+ invalid_properties = Array.new
126
+ invalid_properties
127
+ end
128
+
129
+ # Check to see if the all the properties in the model are valid
130
+ # @return true if the model is valid
131
+ def valid?
132
+ warn '[DEPRECATED] the `valid?` method is obsolete'
133
+ source_validator = EnumAttributeValidator.new('String', ["ad_account", "page_backed", "business"])
134
+ return false unless source_validator.valid?(@source)
135
+ true
136
+ end
137
+
138
+ # Custom attribute writer method checking allowed values (enum).
139
+ # @param [Object] source Object to be assigned
140
+ def source=(source)
141
+ validator = EnumAttributeValidator.new('String', ["ad_account", "page_backed", "business"])
142
+ unless validator.valid?(source)
143
+ fail ArgumentError, "invalid value for \"source\", must be one of #{validator.allowable_values}."
144
+ end
145
+ @source = source
146
+ end
147
+
148
+ # Checks equality by comparing each attribute.
149
+ # @param [Object] Object to be compared
150
+ def ==(o)
151
+ return true if self.equal?(o)
152
+ self.class == o.class &&
153
+ page_id == o.page_id &&
154
+ ig_user_id == o.ig_user_id &&
155
+ source == o.source
156
+ end
157
+
158
+ # @see the `==` method
159
+ # @param [Object] Object to be compared
160
+ def eql?(o)
161
+ self == o
162
+ end
163
+
164
+ # Calculates hash code according to all attributes.
165
+ # @return [Integer] Hash code
166
+ def hash
167
+ [page_id, ig_user_id, source].hash
168
+ end
169
+
170
+ # Builds the object from hash
171
+ # @param [Hash] attributes Model attributes in the form of hash
172
+ # @return [Object] Returns the model itself
173
+ def self.build_from_hash(attributes)
174
+ return nil unless attributes.is_a?(Hash)
175
+ attributes = attributes.transform_keys(&:to_sym)
176
+ transformed_hash = {}
177
+ openapi_types.each_pair do |key, type|
178
+ if attributes.key?(attribute_map[key]) && attributes[attribute_map[key]].nil?
179
+ transformed_hash["#{key}"] = nil
180
+ elsif type =~ /\AArray<(.*)>/i
181
+ # check to ensure the input is an array given that the attribute
182
+ # is documented as an array but the input is not
183
+ if attributes[attribute_map[key]].is_a?(Array)
184
+ transformed_hash["#{key}"] = attributes[attribute_map[key]].map { |v| _deserialize($1, v) }
185
+ end
186
+ elsif !attributes[attribute_map[key]].nil?
187
+ transformed_hash["#{key}"] = _deserialize(type, attributes[attribute_map[key]])
188
+ end
189
+ end
190
+ new(transformed_hash)
191
+ end
192
+
193
+ # Returns the object in the form of hash
194
+ # @return [Hash] Returns the object in the form of hash
195
+ def to_hash
196
+ hash = {}
197
+ self.class.attribute_map.each_pair do |attr, param|
198
+ value = self.send(attr)
199
+ if value.nil?
200
+ is_nullable = self.class.openapi_nullable.include?(attr)
201
+ next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}"))
202
+ end
203
+
204
+ hash[param] = _to_hash(value)
205
+ end
206
+ hash
207
+ end
208
+
209
+ end
210
+
211
+ end