late-sdk 0.0.707 → 0.0.709

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 (43) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +7 -0
  3. data/docs/AdCampaignsApi.md +1 -1
  4. data/docs/AdInsightsApi.md +84 -0
  5. data/docs/BoostPostRequest.md +4 -4
  6. data/docs/BoostPostRequestPlatformSpecificData.md +49 -0
  7. data/docs/CreateAdCampaignRequest.md +1 -1
  8. data/docs/CreateStandaloneAdRequest.md +4 -4
  9. data/docs/CreateStandaloneAdRequestPlatformSpecificData.md +49 -0
  10. data/docs/GetAdsSearchTerms200Response.md +22 -0
  11. data/docs/GetAdsSearchTerms200ResponseDataInner.md +40 -0
  12. data/docs/GetAdsSearchTerms200ResponsePaging.md +18 -0
  13. data/docs/MetaAdsPlatformData.md +22 -0
  14. data/docs/UpdateAdSetRequest.md +1 -1
  15. data/docs/WebhookPayloadCommentPost.md +7 -1
  16. data/lib/zernio-sdk/api/ad_campaigns_api.rb +2 -2
  17. data/lib/zernio-sdk/api/ad_insights_api.rb +82 -0
  18. data/lib/zernio-sdk/models/boost_post_request.rb +4 -4
  19. data/lib/zernio-sdk/models/boost_post_request_platform_specific_data.rb +105 -0
  20. data/lib/zernio-sdk/models/create_ad_campaign_request.rb +1 -1
  21. data/lib/zernio-sdk/models/create_standalone_ad_request.rb +4 -4
  22. data/lib/zernio-sdk/models/create_standalone_ad_request_platform_specific_data.rb +105 -0
  23. data/lib/zernio-sdk/models/get_ads_search_terms200_response.rb +167 -0
  24. data/lib/zernio-sdk/models/get_ads_search_terms200_response_data_inner.rb +256 -0
  25. data/lib/zernio-sdk/models/get_ads_search_terms200_response_paging.rb +149 -0
  26. data/lib/zernio-sdk/models/meta_ads_platform_data.rb +190 -0
  27. data/lib/zernio-sdk/models/update_ad_set_request.rb +1 -1
  28. data/lib/zernio-sdk/models/webhook_payload_comment_post.rb +43 -4
  29. data/lib/zernio-sdk/version.rb +1 -1
  30. data/lib/zernio-sdk.rb +6 -0
  31. data/openapi.yaml +135 -11
  32. data/spec/api/ad_campaigns_api_spec.rb +1 -1
  33. data/spec/api/ad_insights_api_spec.rb +18 -0
  34. data/spec/models/boost_post_request_platform_specific_data_spec.rb +32 -0
  35. data/spec/models/create_standalone_ad_request_platform_specific_data_spec.rb +32 -0
  36. data/spec/models/get_ads_search_terms200_response_data_inner_spec.rb +102 -0
  37. data/spec/models/get_ads_search_terms200_response_paging_spec.rb +36 -0
  38. data/spec/models/get_ads_search_terms200_response_spec.rb +48 -0
  39. data/spec/models/meta_ads_platform_data_spec.rb +48 -0
  40. data/spec/models/webhook_payload_comment_post_spec.rb +18 -0
  41. data/zernio-sdk-0.0.709.gem +0 -0
  42. metadata +26 -2
  43. data/zernio-sdk-0.0.707.gem +0 -0
@@ -0,0 +1,149 @@
1
+ =begin
2
+ #Zernio API
3
+
4
+ #API reference for Zernio. Authenticate with a Bearer API key. Base URL: https://zernio.com/api
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 GetAdsSearchTerms200ResponsePaging < ApiModelBase
18
+ # Null when the last page was returned.
19
+ attr_accessor :next_page_token
20
+
21
+ # Attribute mapping from ruby-style variable name to JSON key.
22
+ def self.attribute_map
23
+ {
24
+ :'next_page_token' => :'nextPageToken'
25
+ }
26
+ end
27
+
28
+ # Returns attribute mapping this model knows about
29
+ def self.acceptable_attribute_map
30
+ attribute_map
31
+ end
32
+
33
+ # Returns all the JSON keys this model knows about
34
+ def self.acceptable_attributes
35
+ acceptable_attribute_map.values
36
+ end
37
+
38
+ # Attribute type mapping.
39
+ def self.openapi_types
40
+ {
41
+ :'next_page_token' => :'String'
42
+ }
43
+ end
44
+
45
+ # List of attributes with nullable: true
46
+ def self.openapi_nullable
47
+ Set.new([
48
+ :'next_page_token'
49
+ ])
50
+ end
51
+
52
+ # Initializes the object
53
+ # @param [Hash] attributes Model attributes in the form of hash
54
+ def initialize(attributes = {})
55
+ if (!attributes.is_a?(Hash))
56
+ fail ArgumentError, "The input argument (attributes) must be a hash in `Zernio::GetAdsSearchTerms200ResponsePaging` initialize method"
57
+ end
58
+
59
+ # check to see if the attribute exists and convert string to symbol for hash key
60
+ acceptable_attribute_map = self.class.acceptable_attribute_map
61
+ attributes = attributes.each_with_object({}) { |(k, v), h|
62
+ if (!acceptable_attribute_map.key?(k.to_sym))
63
+ fail ArgumentError, "`#{k}` is not a valid attribute in `Zernio::GetAdsSearchTerms200ResponsePaging`. Please check the name to make sure it's valid. List of attributes: " + acceptable_attribute_map.keys.inspect
64
+ end
65
+ h[k.to_sym] = v
66
+ }
67
+
68
+ if attributes.key?(:'next_page_token')
69
+ self.next_page_token = attributes[:'next_page_token']
70
+ end
71
+ end
72
+
73
+ # Show invalid properties with the reasons. Usually used together with valid?
74
+ # @return Array for valid properties with the reasons
75
+ def list_invalid_properties
76
+ warn '[DEPRECATED] the `list_invalid_properties` method is obsolete'
77
+ invalid_properties = Array.new
78
+ invalid_properties
79
+ end
80
+
81
+ # Check to see if the all the properties in the model are valid
82
+ # @return true if the model is valid
83
+ def valid?
84
+ warn '[DEPRECATED] the `valid?` method is obsolete'
85
+ true
86
+ end
87
+
88
+ # Checks equality by comparing each attribute.
89
+ # @param [Object] Object to be compared
90
+ def ==(o)
91
+ return true if self.equal?(o)
92
+ self.class == o.class &&
93
+ next_page_token == o.next_page_token
94
+ end
95
+
96
+ # @see the `==` method
97
+ # @param [Object] Object to be compared
98
+ def eql?(o)
99
+ self == o
100
+ end
101
+
102
+ # Calculates hash code according to all attributes.
103
+ # @return [Integer] Hash code
104
+ def hash
105
+ [next_page_token].hash
106
+ end
107
+
108
+ # Builds the object from hash
109
+ # @param [Hash] attributes Model attributes in the form of hash
110
+ # @return [Object] Returns the model itself
111
+ def self.build_from_hash(attributes)
112
+ return nil unless attributes.is_a?(Hash)
113
+ attributes = attributes.transform_keys(&:to_sym)
114
+ transformed_hash = {}
115
+ openapi_types.each_pair do |key, type|
116
+ if attributes.key?(attribute_map[key]) && attributes[attribute_map[key]].nil?
117
+ transformed_hash["#{key}"] = nil
118
+ elsif type =~ /\AArray<(.*)>/i
119
+ # check to ensure the input is an array given that the attribute
120
+ # is documented as an array but the input is not
121
+ if attributes[attribute_map[key]].is_a?(Array)
122
+ transformed_hash["#{key}"] = attributes[attribute_map[key]].map { |v| _deserialize($1, v) }
123
+ end
124
+ elsif !attributes[attribute_map[key]].nil?
125
+ transformed_hash["#{key}"] = _deserialize(type, attributes[attribute_map[key]])
126
+ end
127
+ end
128
+ new(transformed_hash)
129
+ end
130
+
131
+ # Returns the object in the form of hash
132
+ # @return [Hash] Returns the object in the form of hash
133
+ def to_hash
134
+ hash = {}
135
+ self.class.attribute_map.each_pair do |attr, param|
136
+ value = self.send(attr)
137
+ if value.nil?
138
+ is_nullable = self.class.openapi_nullable.include?(attr)
139
+ next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}"))
140
+ end
141
+
142
+ hash[param] = _to_hash(value)
143
+ end
144
+ hash
145
+ end
146
+
147
+ end
148
+
149
+ end
@@ -0,0 +1,190 @@
1
+ =begin
2
+ #Zernio API
3
+
4
+ #API reference for Zernio. Authenticate with a Bearer API key. Base URL: https://zernio.com/api
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
+ # Meta (facebook/instagram) options for platformSpecificData on POST /v1/ads/boost and /v1/ads/create. Unknown keys are rejected, not dropped.
18
+ class MetaAdsPlatformData < ApiModelBase
19
+ attr_accessor :bid_strategy
20
+
21
+ # Whole currency units (USD: 5 = $5.00). Required when bidStrategy is LOWEST_COST_WITH_BID_CAP or COST_CAP. May also be sent alone, WITHOUT bidStrategy, to set the cap on an ad set joining a COST_CAP / LOWEST_COST_WITH_BID_CAP campaign (the strategy is inherited from the campaign). On POST /v1/ads/create that shape requires existingCampaignId and is a 400 otherwise; on POST /v1/ads/boost it is promoted to LOWEST_COST_WITH_BID_CAP.
22
+ attr_accessor :bid_amount
23
+
24
+ # Decimal ROAS multiplier (2.0 = 2.0x). Required when bidStrategy is LOWEST_COST_WITH_MIN_ROAS; sending it without bidStrategy is a 400.
25
+ attr_accessor :roas_average_floor
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
+ :'bid_strategy' => :'bidStrategy',
53
+ :'bid_amount' => :'bidAmount',
54
+ :'roas_average_floor' => :'roasAverageFloor'
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
+ :'bid_strategy' => :'BidStrategy',
72
+ :'bid_amount' => :'Float',
73
+ :'roas_average_floor' => :'Float'
74
+ }
75
+ end
76
+
77
+ # List of attributes with nullable: true
78
+ def self.openapi_nullable
79
+ Set.new([
80
+ ])
81
+ end
82
+
83
+ # Initializes the object
84
+ # @param [Hash] attributes Model attributes in the form of hash
85
+ def initialize(attributes = {})
86
+ if (!attributes.is_a?(Hash))
87
+ fail ArgumentError, "The input argument (attributes) must be a hash in `Zernio::MetaAdsPlatformData` initialize method"
88
+ end
89
+
90
+ # check to see if the attribute exists and convert string to symbol for hash key
91
+ acceptable_attribute_map = self.class.acceptable_attribute_map
92
+ attributes = attributes.each_with_object({}) { |(k, v), h|
93
+ if (!acceptable_attribute_map.key?(k.to_sym))
94
+ fail ArgumentError, "`#{k}` is not a valid attribute in `Zernio::MetaAdsPlatformData`. Please check the name to make sure it's valid. List of attributes: " + acceptable_attribute_map.keys.inspect
95
+ end
96
+ h[k.to_sym] = v
97
+ }
98
+
99
+ if attributes.key?(:'bid_strategy')
100
+ self.bid_strategy = attributes[:'bid_strategy']
101
+ end
102
+
103
+ if attributes.key?(:'bid_amount')
104
+ self.bid_amount = attributes[:'bid_amount']
105
+ end
106
+
107
+ if attributes.key?(:'roas_average_floor')
108
+ self.roas_average_floor = attributes[:'roas_average_floor']
109
+ end
110
+ end
111
+
112
+ # Show invalid properties with the reasons. Usually used together with valid?
113
+ # @return Array for valid properties with the reasons
114
+ def list_invalid_properties
115
+ warn '[DEPRECATED] the `list_invalid_properties` method is obsolete'
116
+ invalid_properties = Array.new
117
+ invalid_properties
118
+ end
119
+
120
+ # Check to see if the all the properties in the model are valid
121
+ # @return true if the model is valid
122
+ def valid?
123
+ warn '[DEPRECATED] the `valid?` method is obsolete'
124
+ true
125
+ end
126
+
127
+ # Checks equality by comparing each attribute.
128
+ # @param [Object] Object to be compared
129
+ def ==(o)
130
+ return true if self.equal?(o)
131
+ self.class == o.class &&
132
+ bid_strategy == o.bid_strategy &&
133
+ bid_amount == o.bid_amount &&
134
+ roas_average_floor == o.roas_average_floor
135
+ end
136
+
137
+ # @see the `==` method
138
+ # @param [Object] Object to be compared
139
+ def eql?(o)
140
+ self == o
141
+ end
142
+
143
+ # Calculates hash code according to all attributes.
144
+ # @return [Integer] Hash code
145
+ def hash
146
+ [bid_strategy, bid_amount, roas_average_floor].hash
147
+ end
148
+
149
+ # Builds the object from hash
150
+ # @param [Hash] attributes Model attributes in the form of hash
151
+ # @return [Object] Returns the model itself
152
+ def self.build_from_hash(attributes)
153
+ return nil unless attributes.is_a?(Hash)
154
+ attributes = attributes.transform_keys(&:to_sym)
155
+ transformed_hash = {}
156
+ openapi_types.each_pair do |key, type|
157
+ if attributes.key?(attribute_map[key]) && attributes[attribute_map[key]].nil?
158
+ transformed_hash["#{key}"] = nil
159
+ elsif type =~ /\AArray<(.*)>/i
160
+ # check to ensure the input is an array given that the attribute
161
+ # is documented as an array but the input is not
162
+ if attributes[attribute_map[key]].is_a?(Array)
163
+ transformed_hash["#{key}"] = attributes[attribute_map[key]].map { |v| _deserialize($1, v) }
164
+ end
165
+ elsif !attributes[attribute_map[key]].nil?
166
+ transformed_hash["#{key}"] = _deserialize(type, attributes[attribute_map[key]])
167
+ end
168
+ end
169
+ new(transformed_hash)
170
+ end
171
+
172
+ # Returns the object in the form of hash
173
+ # @return [Hash] Returns the object in the form of hash
174
+ def to_hash
175
+ hash = {}
176
+ self.class.attribute_map.each_pair do |attr, param|
177
+ value = self.send(attr)
178
+ if value.nil?
179
+ is_nullable = self.class.openapi_nullable.include?(attr)
180
+ next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}"))
181
+ end
182
+
183
+ hash[param] = _to_hash(value)
184
+ end
185
+ hash
186
+ end
187
+
188
+ end
189
+
190
+ end
@@ -28,7 +28,7 @@ module Zernio
28
28
  # Ad-set-level bid strategy. Overrides the campaign-level default. Supported on Meta (facebook, instagram), TikTok, and OpenAI. On TikTok the Meta-style enum is mapped to bid_type / bid_price / deep_bid_type automatically. On OpenAI, LOWEST_COST_WITH_BID_CAP and COST_CAP both map to the ad group's `bidding_config.max_bid_micros` (one knob covers both); LOWEST_COST_WITH_MIN_ROAS is rejected with 422 (OpenAI has no ROAS-based bidding). Other platforms (linkedin, pinterest, google, twitter) return 501 Not Implemented when bidStrategy is set.
29
29
  attr_accessor :bid_strategy
30
30
 
31
- # Bid cap in WHOLE currency units (USD: 5 = $5.00; JPY: 100 = ¥100). Required when bidStrategy is LOWEST_COST_WITH_BID_CAP or COST_CAP. Internally converted to Meta's smallest-denomination integer, or (on OpenAI) to micros (× 1,000,000).
31
+ # Bid cap in WHOLE currency units (USD: 5 = $5.00; JPY: 100 = ¥100). Required when bidStrategy is LOWEST_COST_WITH_BID_CAP or COST_CAP. Internally converted to Meta's smallest-denomination integer, or (on OpenAI) to micros (× 1,000,000). Meta only: may be sent alone, WITHOUT bidStrategy, to update the cap amount on an ad set whose parent campaign is COST_CAP or LOWEST_COST_WITH_BID_CAP (the strategy is inherited from the campaign and is left untouched).
32
32
  attr_accessor :bid_amount
33
33
 
34
34
  # Minimum ROAS as a decimal multiplier (2.0 = 2.0x). Required when bidStrategy is LOWEST_COST_WITH_MIN_ROAS. Sent to Meta as `bid_constraints.roas_average_floor` × 10000. Not supported on OpenAI (422).
@@ -21,11 +21,23 @@ module Zernio
21
21
  # Platform's post ID
22
22
  attr_accessor :platform_post_id
23
23
 
24
+ # Post text, from our synced copy — no platform call is made on the comment path, so null when the post was never synced.
25
+ attr_accessor :content
26
+
27
+ # Post thumbnail or first media item URL. Platform CDN URLs expire, fetch promptly.
28
+ attr_accessor :image_url
29
+
30
+ # Public URL of the post. Null for posts published through Zernio that were never re-synced.
31
+ attr_accessor :permalink
32
+
24
33
  # Attribute mapping from ruby-style variable name to JSON key.
25
34
  def self.attribute_map
26
35
  {
27
36
  :'id' => :'id',
28
- :'platform_post_id' => :'platformPostId'
37
+ :'platform_post_id' => :'platformPostId',
38
+ :'content' => :'content',
39
+ :'image_url' => :'imageUrl',
40
+ :'permalink' => :'permalink'
29
41
  }
30
42
  end
31
43
 
@@ -43,7 +55,10 @@ module Zernio
43
55
  def self.openapi_types
44
56
  {
45
57
  :'id' => :'String',
46
- :'platform_post_id' => :'String'
58
+ :'platform_post_id' => :'String',
59
+ :'content' => :'String',
60
+ :'image_url' => :'String',
61
+ :'permalink' => :'String'
47
62
  }
48
63
  end
49
64
 
@@ -51,6 +66,9 @@ module Zernio
51
66
  def self.openapi_nullable
52
67
  Set.new([
53
68
  :'id',
69
+ :'content',
70
+ :'image_url',
71
+ :'permalink'
54
72
  ])
55
73
  end
56
74
 
@@ -81,6 +99,24 @@ module Zernio
81
99
  else
82
100
  self.platform_post_id = nil
83
101
  end
102
+
103
+ if attributes.key?(:'content')
104
+ self.content = attributes[:'content']
105
+ else
106
+ self.content = nil
107
+ end
108
+
109
+ if attributes.key?(:'image_url')
110
+ self.image_url = attributes[:'image_url']
111
+ else
112
+ self.image_url = nil
113
+ end
114
+
115
+ if attributes.key?(:'permalink')
116
+ self.permalink = attributes[:'permalink']
117
+ else
118
+ self.permalink = nil
119
+ end
84
120
  end
85
121
 
86
122
  # Show invalid properties with the reasons. Usually used together with valid?
@@ -119,7 +155,10 @@ module Zernio
119
155
  return true if self.equal?(o)
120
156
  self.class == o.class &&
121
157
  id == o.id &&
122
- platform_post_id == o.platform_post_id
158
+ platform_post_id == o.platform_post_id &&
159
+ content == o.content &&
160
+ image_url == o.image_url &&
161
+ permalink == o.permalink
123
162
  end
124
163
 
125
164
  # @see the `==` method
@@ -131,7 +170,7 @@ module Zernio
131
170
  # Calculates hash code according to all attributes.
132
171
  # @return [Integer] Hash code
133
172
  def hash
134
- [id, platform_post_id].hash
173
+ [id, platform_post_id, content, image_url, permalink].hash
135
174
  end
136
175
 
137
176
  # Builds the object from hash
@@ -11,5 +11,5 @@ Generator version: 7.19.0
11
11
  =end
12
12
 
13
13
  module Zernio
14
- VERSION = '0.0.707'
14
+ VERSION = '0.0.709'
15
15
  end
data/lib/zernio-sdk.rb CHANGED
@@ -100,6 +100,7 @@ require 'zernio-sdk/models/bookmark_post200_response'
100
100
  require 'zernio-sdk/models/bookmark_post_request'
101
101
  require 'zernio-sdk/models/boost_post_request'
102
102
  require 'zernio-sdk/models/boost_post_request_budget'
103
+ require 'zernio-sdk/models/boost_post_request_platform_specific_data'
103
104
  require 'zernio-sdk/models/boost_post_request_schedule'
104
105
  require 'zernio-sdk/models/boost_post_request_targeting'
105
106
  require 'zernio-sdk/models/boost_post_request_targeting_cities_inner'
@@ -283,6 +284,7 @@ require 'zernio-sdk/models/create_standalone_ad_request_placement_assets'
283
284
  require 'zernio-sdk/models/create_standalone_ad_request_placement_assets_rules_inner'
284
285
  require 'zernio-sdk/models/create_standalone_ad_request_placement_assets_rules_inner_placements'
285
286
  require 'zernio-sdk/models/create_standalone_ad_request_placements'
287
+ require 'zernio-sdk/models/create_standalone_ad_request_platform_specific_data'
286
288
  require 'zernio-sdk/models/create_standalone_ad_request_promoted_object'
287
289
  require 'zernio-sdk/models/create_standalone_ad_request_regions_inner'
288
290
  require 'zernio-sdk/models/create_standalone_ad_request_tracking'
@@ -462,6 +464,9 @@ require 'zernio-sdk/models/get_ad_tracking_tags200_response'
462
464
  require 'zernio-sdk/models/get_ad_tree200_response'
463
465
  require 'zernio-sdk/models/get_ads_activity_log200_response'
464
466
  require 'zernio-sdk/models/get_ads_activity_log200_response_paging'
467
+ require 'zernio-sdk/models/get_ads_search_terms200_response'
468
+ require 'zernio-sdk/models/get_ads_search_terms200_response_data_inner'
469
+ require 'zernio-sdk/models/get_ads_search_terms200_response_paging'
465
470
  require 'zernio-sdk/models/get_ads_timeline200_response'
466
471
  require 'zernio-sdk/models/get_ads_timeline200_response_rows_inner'
467
472
  require 'zernio-sdk/models/get_all_accounts_health200_response'
@@ -999,6 +1004,7 @@ require 'zernio-sdk/models/lookup_sms_number200_response'
999
1004
  require 'zernio-sdk/models/mark_conversation_read200_response'
1000
1005
  require 'zernio-sdk/models/media_item'
1001
1006
  require 'zernio-sdk/models/media_upload_response'
1007
+ require 'zernio-sdk/models/meta_ads_platform_data'
1002
1008
  require 'zernio-sdk/models/meta_lead_form_platform_data'
1003
1009
  require 'zernio-sdk/models/meta_lead_form_platform_data_context_card'
1004
1010
  require 'zernio-sdk/models/money'