late-sdk 0.0.570 → 0.0.572
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.
- checksums.yaml +4 -4
- data/README.md +3 -0
- data/docs/AdCampaignsApi.md +92 -0
- data/docs/CheckPhoneNumberAvailability200Response.md +1 -1
- data/docs/CheckPhoneNumberAvailability200ResponseAreaOptionsInner.md +2 -2
- data/docs/ListAdKeywords200Response.md +20 -0
- data/docs/ListAdKeywords200ResponseKeywordsInner.md +48 -0
- data/lib/zernio-sdk/api/ad_campaigns_api.rb +114 -0
- data/lib/zernio-sdk/models/check_phone_number_availability200_response.rb +1 -1
- data/lib/zernio-sdk/models/check_phone_number_availability200_response_area_options_inner.rb +2 -2
- data/lib/zernio-sdk/models/list_ad_keywords200_response.rb +158 -0
- data/lib/zernio-sdk/models/list_ad_keywords200_response_keywords_inner.rb +348 -0
- data/lib/zernio-sdk/version.rb +1 -1
- data/lib/zernio-sdk.rb +2 -0
- data/openapi.yaml +77 -8
- data/spec/api/ad_campaigns_api_spec.rb +22 -0
- data/spec/models/list_ad_keywords200_response_keywords_inner_spec.rb +138 -0
- data/spec/models/list_ad_keywords200_response_spec.rb +42 -0
- data/zernio-sdk-0.0.572.gem +0 -0
- metadata +11 -3
- data/zernio-sdk-0.0.570.gem +0 -0
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 5e3324f317e16b81226d00a5144c9cd5aeeec1a79045cc0055a88a593f856d0c
|
|
4
|
+
data.tar.gz: 54ea0e6fa0ac0674cd5804a98f8e60af70edd21de4f469cb1ce457248487933e
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: e2add62050a6026d715f09327fee6e3b48342f76ee1c93e2d613f04c3bec36bce2f5edd530be962201f7c19e4d1f81fad73f46b55d8026ea01ddd477d05c8ba8
|
|
7
|
+
data.tar.gz: 59e1a9127a67820a19e809cdd74e73d6551c3ddd13a98df4930fd6051283763ee61bb886b1cd58cdd63e3d60cf937a496fa8fc2e41ed9429090c88c67ac8de42
|
data/README.md
CHANGED
|
@@ -122,6 +122,7 @@ Class | Method | HTTP request | Description
|
|
|
122
122
|
*Zernio::AdCampaignsApi* | [**get_ad_tree**](docs/AdCampaignsApi.md#get_ad_tree) | **GET** /v1/ads/tree | Get campaign tree
|
|
123
123
|
*Zernio::AdCampaignsApi* | [**get_ads_timeline**](docs/AdCampaignsApi.md#get_ads_timeline) | **GET** /v1/ads/timeline | Get daily account metrics
|
|
124
124
|
*Zernio::AdCampaignsApi* | [**list_ad_campaigns**](docs/AdCampaignsApi.md#list_ad_campaigns) | **GET** /v1/ads/campaigns | List campaigns
|
|
125
|
+
*Zernio::AdCampaignsApi* | [**list_ad_keywords**](docs/AdCampaignsApi.md#list_ad_keywords) | **GET** /v1/ads/keywords | List Search keywords
|
|
125
126
|
*Zernio::AdCampaignsApi* | [**list_ads**](docs/AdCampaignsApi.md#list_ads) | **GET** /v1/ads | List ads
|
|
126
127
|
*Zernio::AdCampaignsApi* | [**update_ad**](docs/AdCampaignsApi.md#update_ad) | **PUT** /v1/ads/{adId} | Update ad
|
|
127
128
|
*Zernio::AdCampaignsApi* | [**update_ad_campaign**](docs/AdCampaignsApi.md#update_ad_campaign) | **PUT** /v1/ads/campaigns/{campaignId} | Update a campaign
|
|
@@ -1366,6 +1367,8 @@ Class | Method | HTTP request | Description
|
|
|
1366
1367
|
- [Zernio::ListAdCatalogs200ResponseCatalogsInner](docs/ListAdCatalogs200ResponseCatalogsInner.md)
|
|
1367
1368
|
- [Zernio::ListAdCreatives200Response](docs/ListAdCreatives200Response.md)
|
|
1368
1369
|
- [Zernio::ListAdImages200Response](docs/ListAdImages200Response.md)
|
|
1370
|
+
- [Zernio::ListAdKeywords200Response](docs/ListAdKeywords200Response.md)
|
|
1371
|
+
- [Zernio::ListAdKeywords200ResponseKeywordsInner](docs/ListAdKeywords200ResponseKeywordsInner.md)
|
|
1369
1372
|
- [Zernio::ListAdLabels200Response](docs/ListAdLabels200Response.md)
|
|
1370
1373
|
- [Zernio::ListAdStudies200Response](docs/ListAdStudies200Response.md)
|
|
1371
1374
|
- [Zernio::ListAds200Response](docs/ListAds200Response.md)
|
data/docs/AdCampaignsApi.md
CHANGED
|
@@ -18,6 +18,7 @@ All URIs are relative to *https://zernio.com/api*
|
|
|
18
18
|
| [**get_ad_tree**](AdCampaignsApi.md#get_ad_tree) | **GET** /v1/ads/tree | Get campaign tree |
|
|
19
19
|
| [**get_ads_timeline**](AdCampaignsApi.md#get_ads_timeline) | **GET** /v1/ads/timeline | Get daily account metrics |
|
|
20
20
|
| [**list_ad_campaigns**](AdCampaignsApi.md#list_ad_campaigns) | **GET** /v1/ads/campaigns | List campaigns |
|
|
21
|
+
| [**list_ad_keywords**](AdCampaignsApi.md#list_ad_keywords) | **GET** /v1/ads/keywords | List Search keywords |
|
|
21
22
|
| [**list_ads**](AdCampaignsApi.md#list_ads) | **GET** /v1/ads | List ads |
|
|
22
23
|
| [**update_ad**](AdCampaignsApi.md#update_ad) | **PUT** /v1/ads/{adId} | Update ad |
|
|
23
24
|
| [**update_ad_campaign**](AdCampaignsApi.md#update_ad_campaign) | **PUT** /v1/ads/campaigns/{campaignId} | Update a campaign |
|
|
@@ -1071,6 +1072,97 @@ end
|
|
|
1071
1072
|
- **Accept**: application/json
|
|
1072
1073
|
|
|
1073
1074
|
|
|
1075
|
+
## list_ad_keywords
|
|
1076
|
+
|
|
1077
|
+
> <ListAdKeywords200Response> list_ad_keywords(opts)
|
|
1078
|
+
|
|
1079
|
+
List Search keywords
|
|
1080
|
+
|
|
1081
|
+
Returns the Google Search keyword criteria (positive and negative) synced from connected Google Ads accounts, one row per ad-group keyword. Populated by the periodic ads discovery sweep (roughly every 3 hours per account), so keywords added on Google appear with that delay. Campaign-level negative keywords are not included; only ad-group-level criteria are.
|
|
1082
|
+
|
|
1083
|
+
### Examples
|
|
1084
|
+
|
|
1085
|
+
```ruby
|
|
1086
|
+
require 'time'
|
|
1087
|
+
require 'zernio-sdk'
|
|
1088
|
+
# setup authorization
|
|
1089
|
+
Zernio.configure do |config|
|
|
1090
|
+
# Configure Bearer authorization (JWT): bearerAuth
|
|
1091
|
+
config.access_token = 'YOUR_BEARER_TOKEN'
|
|
1092
|
+
end
|
|
1093
|
+
|
|
1094
|
+
api_instance = Zernio::AdCampaignsApi.new
|
|
1095
|
+
opts = {
|
|
1096
|
+
page: 56, # Integer | Page number (1-based)
|
|
1097
|
+
limit: 56, # Integer |
|
|
1098
|
+
account_id: 'account_id_example', # String | Social account ID
|
|
1099
|
+
ad_account_id: 'ad_account_id_example', # String | Platform ad account ID (Google customer ID). Mirrors the same filter on /v1/ads.
|
|
1100
|
+
profile_id: 'profile_id_example', # String | Profile ID
|
|
1101
|
+
campaign_id: 'campaign_id_example', # String | Platform campaign ID
|
|
1102
|
+
ad_set_id: 'ad_set_id_example', # String | Platform ad group ID (Google ad group)
|
|
1103
|
+
status: 'active', # String | Keyword criterion status
|
|
1104
|
+
match_type: 'exact', # String |
|
|
1105
|
+
negative: true, # Boolean | true = negative keywords only, false = positive only. Omit for both.
|
|
1106
|
+
search: 'search_example' # String | Case-insensitive substring match on the keyword text
|
|
1107
|
+
}
|
|
1108
|
+
|
|
1109
|
+
begin
|
|
1110
|
+
# List Search keywords
|
|
1111
|
+
result = api_instance.list_ad_keywords(opts)
|
|
1112
|
+
p result
|
|
1113
|
+
rescue Zernio::ApiError => e
|
|
1114
|
+
puts "Error when calling AdCampaignsApi->list_ad_keywords: #{e}"
|
|
1115
|
+
end
|
|
1116
|
+
```
|
|
1117
|
+
|
|
1118
|
+
#### Using the list_ad_keywords_with_http_info variant
|
|
1119
|
+
|
|
1120
|
+
This returns an Array which contains the response data, status code and headers.
|
|
1121
|
+
|
|
1122
|
+
> <Array(<ListAdKeywords200Response>, Integer, Hash)> list_ad_keywords_with_http_info(opts)
|
|
1123
|
+
|
|
1124
|
+
```ruby
|
|
1125
|
+
begin
|
|
1126
|
+
# List Search keywords
|
|
1127
|
+
data, status_code, headers = api_instance.list_ad_keywords_with_http_info(opts)
|
|
1128
|
+
p status_code # => 2xx
|
|
1129
|
+
p headers # => { ... }
|
|
1130
|
+
p data # => <ListAdKeywords200Response>
|
|
1131
|
+
rescue Zernio::ApiError => e
|
|
1132
|
+
puts "Error when calling AdCampaignsApi->list_ad_keywords_with_http_info: #{e}"
|
|
1133
|
+
end
|
|
1134
|
+
```
|
|
1135
|
+
|
|
1136
|
+
### Parameters
|
|
1137
|
+
|
|
1138
|
+
| Name | Type | Description | Notes |
|
|
1139
|
+
| ---- | ---- | ----------- | ----- |
|
|
1140
|
+
| **page** | **Integer** | Page number (1-based) | [optional][default to 1] |
|
|
1141
|
+
| **limit** | **Integer** | | [optional][default to 50] |
|
|
1142
|
+
| **account_id** | **String** | Social account ID | [optional] |
|
|
1143
|
+
| **ad_account_id** | **String** | Platform ad account ID (Google customer ID). Mirrors the same filter on /v1/ads. | [optional] |
|
|
1144
|
+
| **profile_id** | **String** | Profile ID | [optional] |
|
|
1145
|
+
| **campaign_id** | **String** | Platform campaign ID | [optional] |
|
|
1146
|
+
| **ad_set_id** | **String** | Platform ad group ID (Google ad group) | [optional] |
|
|
1147
|
+
| **status** | **String** | Keyword criterion status | [optional] |
|
|
1148
|
+
| **match_type** | **String** | | [optional] |
|
|
1149
|
+
| **negative** | **Boolean** | true = negative keywords only, false = positive only. Omit for both. | [optional] |
|
|
1150
|
+
| **search** | **String** | Case-insensitive substring match on the keyword text | [optional] |
|
|
1151
|
+
|
|
1152
|
+
### Return type
|
|
1153
|
+
|
|
1154
|
+
[**ListAdKeywords200Response**](ListAdKeywords200Response.md)
|
|
1155
|
+
|
|
1156
|
+
### Authorization
|
|
1157
|
+
|
|
1158
|
+
[bearerAuth](../README.md#bearerAuth)
|
|
1159
|
+
|
|
1160
|
+
### HTTP request headers
|
|
1161
|
+
|
|
1162
|
+
- **Content-Type**: Not defined
|
|
1163
|
+
- **Accept**: application/json
|
|
1164
|
+
|
|
1165
|
+
|
|
1074
1166
|
## list_ads
|
|
1075
1167
|
|
|
1076
1168
|
> <ListAds200Response> list_ads(opts)
|
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
| **available** | **Boolean** | Whether deliverable voice inventory exists right now. | [optional] |
|
|
10
10
|
| **address_constraint** | **String** | | [optional] |
|
|
11
11
|
| **areas** | **Array<String>** | For `geo` only — the area(s) the registered address must be in. | [optional] |
|
|
12
|
-
| **area_options** | [**Array<CheckPhoneNumberAvailability200ResponseAreaOptionsInner>**](CheckPhoneNumberAvailability200ResponseAreaOptionsInner.md) | Live inventory grouped by area code, largest stock first. Empty when out of stock (or the area lookup failed). Pass a chosen `ndc` as `areaCode` on POST /v1/phone-numbers/purchase (or on the KYC submit for regulated countries) to require that area. | [optional] |
|
|
12
|
+
| **area_options** | [**Array<CheckPhoneNumberAvailability200ResponseAreaOptionsInner>**](CheckPhoneNumberAvailability200ResponseAreaOptionsInner.md) | Live inventory grouped by area code, largest stock first. For US and CA this is the full country inventory (every area code with stock, named by state/province); other countries list the areas in the latest inventory page (up to 500 numbers, which for most countries is the entire pool). Empty when out of stock (or the area lookup failed). Pass a chosen `ndc` as `areaCode` on POST /v1/phone-numbers/purchase (or on the KYC submit for regulated countries) to require that area. | [optional] |
|
|
13
13
|
|
|
14
14
|
## Example
|
|
15
15
|
|
|
@@ -5,8 +5,8 @@
|
|
|
5
5
|
| Name | Type | Description | Notes |
|
|
6
6
|
| ---- | ---- | ----------- | ----- |
|
|
7
7
|
| **ndc** | **String** | Area code (national destination code), e.g. \"11\". | [optional] |
|
|
8
|
-
| **name** | **String** |
|
|
9
|
-
| **count** | **Integer** |
|
|
8
|
+
| **name** | **String** | Area name: state/province for US/CA (e.g. \"Minnesota\"), city otherwise (e.g. \"Sao Paulo\"). | [optional] |
|
|
9
|
+
| **count** | **Integer** | Numbers available in this area: country-wide count for US/CA, numbers seen on the latest inventory page otherwise. | [optional] |
|
|
10
10
|
|
|
11
11
|
## Example
|
|
12
12
|
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
# Zernio::ListAdKeywords200Response
|
|
2
|
+
|
|
3
|
+
## Properties
|
|
4
|
+
|
|
5
|
+
| Name | Type | Description | Notes |
|
|
6
|
+
| ---- | ---- | ----------- | ----- |
|
|
7
|
+
| **keywords** | [**Array<ListAdKeywords200ResponseKeywordsInner>**](ListAdKeywords200ResponseKeywordsInner.md) | | [optional] |
|
|
8
|
+
| **pagination** | [**Pagination**](Pagination.md) | | [optional] |
|
|
9
|
+
|
|
10
|
+
## Example
|
|
11
|
+
|
|
12
|
+
```ruby
|
|
13
|
+
require 'zernio-sdk'
|
|
14
|
+
|
|
15
|
+
instance = Zernio::ListAdKeywords200Response.new(
|
|
16
|
+
keywords: null,
|
|
17
|
+
pagination: null
|
|
18
|
+
)
|
|
19
|
+
```
|
|
20
|
+
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
# Zernio::ListAdKeywords200ResponseKeywordsInner
|
|
2
|
+
|
|
3
|
+
## Properties
|
|
4
|
+
|
|
5
|
+
| Name | Type | Description | Notes |
|
|
6
|
+
| ---- | ---- | ----------- | ----- |
|
|
7
|
+
| **id** | **String** | | [optional] |
|
|
8
|
+
| **account_id** | **String** | Social account ID owning the sync | [optional] |
|
|
9
|
+
| **profile_id** | **String** | | [optional] |
|
|
10
|
+
| **platform** | **String** | | [optional] |
|
|
11
|
+
| **ad_account_id** | **String** | Google customer ID | [optional] |
|
|
12
|
+
| **campaign_id** | **String** | | [optional] |
|
|
13
|
+
| **campaign_name** | **String** | | [optional] |
|
|
14
|
+
| **campaign_status** | **String** | | [optional] |
|
|
15
|
+
| **ad_set_id** | **String** | Google ad group ID | [optional] |
|
|
16
|
+
| **ad_set_name** | **String** | | [optional] |
|
|
17
|
+
| **ad_set_status** | **String** | | [optional] |
|
|
18
|
+
| **keyword** | **String** | | [optional] |
|
|
19
|
+
| **match_type** | **String** | | [optional] |
|
|
20
|
+
| **status** | **String** | | [optional] |
|
|
21
|
+
| **negative** | **Boolean** | | [optional] |
|
|
22
|
+
| **synced_at** | **Time** | | [optional] |
|
|
23
|
+
|
|
24
|
+
## Example
|
|
25
|
+
|
|
26
|
+
```ruby
|
|
27
|
+
require 'zernio-sdk'
|
|
28
|
+
|
|
29
|
+
instance = Zernio::ListAdKeywords200ResponseKeywordsInner.new(
|
|
30
|
+
id: null,
|
|
31
|
+
account_id: null,
|
|
32
|
+
profile_id: null,
|
|
33
|
+
platform: null,
|
|
34
|
+
ad_account_id: null,
|
|
35
|
+
campaign_id: null,
|
|
36
|
+
campaign_name: null,
|
|
37
|
+
campaign_status: null,
|
|
38
|
+
ad_set_id: null,
|
|
39
|
+
ad_set_name: null,
|
|
40
|
+
ad_set_status: null,
|
|
41
|
+
keyword: null,
|
|
42
|
+
match_type: null,
|
|
43
|
+
status: null,
|
|
44
|
+
negative: null,
|
|
45
|
+
synced_at: null
|
|
46
|
+
)
|
|
47
|
+
```
|
|
48
|
+
|
|
@@ -1107,6 +1107,120 @@ module Zernio
|
|
|
1107
1107
|
return data, status_code, headers
|
|
1108
1108
|
end
|
|
1109
1109
|
|
|
1110
|
+
# List Search keywords
|
|
1111
|
+
# Returns the Google Search keyword criteria (positive and negative) synced from connected Google Ads accounts, one row per ad-group keyword. Populated by the periodic ads discovery sweep (roughly every 3 hours per account), so keywords added on Google appear with that delay. Campaign-level negative keywords are not included; only ad-group-level criteria are.
|
|
1112
|
+
# @param [Hash] opts the optional parameters
|
|
1113
|
+
# @option opts [Integer] :page Page number (1-based) (default to 1)
|
|
1114
|
+
# @option opts [Integer] :limit (default to 50)
|
|
1115
|
+
# @option opts [String] :account_id Social account ID
|
|
1116
|
+
# @option opts [String] :ad_account_id Platform ad account ID (Google customer ID). Mirrors the same filter on /v1/ads.
|
|
1117
|
+
# @option opts [String] :profile_id Profile ID
|
|
1118
|
+
# @option opts [String] :campaign_id Platform campaign ID
|
|
1119
|
+
# @option opts [String] :ad_set_id Platform ad group ID (Google ad group)
|
|
1120
|
+
# @option opts [String] :status Keyword criterion status
|
|
1121
|
+
# @option opts [String] :match_type
|
|
1122
|
+
# @option opts [Boolean] :negative true = negative keywords only, false = positive only. Omit for both.
|
|
1123
|
+
# @option opts [String] :search Case-insensitive substring match on the keyword text
|
|
1124
|
+
# @return [ListAdKeywords200Response]
|
|
1125
|
+
def list_ad_keywords(opts = {})
|
|
1126
|
+
data, _status_code, _headers = list_ad_keywords_with_http_info(opts)
|
|
1127
|
+
data
|
|
1128
|
+
end
|
|
1129
|
+
|
|
1130
|
+
# List Search keywords
|
|
1131
|
+
# Returns the Google Search keyword criteria (positive and negative) synced from connected Google Ads accounts, one row per ad-group keyword. Populated by the periodic ads discovery sweep (roughly every 3 hours per account), so keywords added on Google appear with that delay. Campaign-level negative keywords are not included; only ad-group-level criteria are.
|
|
1132
|
+
# @param [Hash] opts the optional parameters
|
|
1133
|
+
# @option opts [Integer] :page Page number (1-based) (default to 1)
|
|
1134
|
+
# @option opts [Integer] :limit (default to 50)
|
|
1135
|
+
# @option opts [String] :account_id Social account ID
|
|
1136
|
+
# @option opts [String] :ad_account_id Platform ad account ID (Google customer ID). Mirrors the same filter on /v1/ads.
|
|
1137
|
+
# @option opts [String] :profile_id Profile ID
|
|
1138
|
+
# @option opts [String] :campaign_id Platform campaign ID
|
|
1139
|
+
# @option opts [String] :ad_set_id Platform ad group ID (Google ad group)
|
|
1140
|
+
# @option opts [String] :status Keyword criterion status
|
|
1141
|
+
# @option opts [String] :match_type
|
|
1142
|
+
# @option opts [Boolean] :negative true = negative keywords only, false = positive only. Omit for both.
|
|
1143
|
+
# @option opts [String] :search Case-insensitive substring match on the keyword text
|
|
1144
|
+
# @return [Array<(ListAdKeywords200Response, Integer, Hash)>] ListAdKeywords200Response data, response status code and response headers
|
|
1145
|
+
def list_ad_keywords_with_http_info(opts = {})
|
|
1146
|
+
if @api_client.config.debugging
|
|
1147
|
+
@api_client.config.logger.debug 'Calling API: AdCampaignsApi.list_ad_keywords ...'
|
|
1148
|
+
end
|
|
1149
|
+
if @api_client.config.client_side_validation && !opts[:'page'].nil? && opts[:'page'] < 1
|
|
1150
|
+
fail ArgumentError, 'invalid value for "opts[:"page"]" when calling AdCampaignsApi.list_ad_keywords, must be greater than or equal to 1.'
|
|
1151
|
+
end
|
|
1152
|
+
|
|
1153
|
+
if @api_client.config.client_side_validation && !opts[:'limit'].nil? && opts[:'limit'] > 500
|
|
1154
|
+
fail ArgumentError, 'invalid value for "opts[:"limit"]" when calling AdCampaignsApi.list_ad_keywords, must be smaller than or equal to 500.'
|
|
1155
|
+
end
|
|
1156
|
+
|
|
1157
|
+
if @api_client.config.client_side_validation && !opts[:'limit'].nil? && opts[:'limit'] < 1
|
|
1158
|
+
fail ArgumentError, 'invalid value for "opts[:"limit"]" when calling AdCampaignsApi.list_ad_keywords, must be greater than or equal to 1.'
|
|
1159
|
+
end
|
|
1160
|
+
|
|
1161
|
+
allowable_values = ["active", "paused"]
|
|
1162
|
+
if @api_client.config.client_side_validation && opts[:'status'] && !allowable_values.include?(opts[:'status'])
|
|
1163
|
+
fail ArgumentError, "invalid value for \"status\", must be one of #{allowable_values}"
|
|
1164
|
+
end
|
|
1165
|
+
allowable_values = ["exact", "phrase", "broad", "unknown"]
|
|
1166
|
+
if @api_client.config.client_side_validation && opts[:'match_type'] && !allowable_values.include?(opts[:'match_type'])
|
|
1167
|
+
fail ArgumentError, "invalid value for \"match_type\", must be one of #{allowable_values}"
|
|
1168
|
+
end
|
|
1169
|
+
if @api_client.config.client_side_validation && !opts[:'search'].nil? && opts[:'search'].to_s.length > 200
|
|
1170
|
+
fail ArgumentError, 'invalid value for "opts[:"search"]" when calling AdCampaignsApi.list_ad_keywords, the character length must be smaller than or equal to 200.'
|
|
1171
|
+
end
|
|
1172
|
+
|
|
1173
|
+
# resource path
|
|
1174
|
+
local_var_path = '/v1/ads/keywords'
|
|
1175
|
+
|
|
1176
|
+
# query parameters
|
|
1177
|
+
query_params = opts[:query_params] || {}
|
|
1178
|
+
query_params[:'page'] = opts[:'page'] if !opts[:'page'].nil?
|
|
1179
|
+
query_params[:'limit'] = opts[:'limit'] if !opts[:'limit'].nil?
|
|
1180
|
+
query_params[:'accountId'] = opts[:'account_id'] if !opts[:'account_id'].nil?
|
|
1181
|
+
query_params[:'adAccountId'] = opts[:'ad_account_id'] if !opts[:'ad_account_id'].nil?
|
|
1182
|
+
query_params[:'profileId'] = opts[:'profile_id'] if !opts[:'profile_id'].nil?
|
|
1183
|
+
query_params[:'campaignId'] = opts[:'campaign_id'] if !opts[:'campaign_id'].nil?
|
|
1184
|
+
query_params[:'adSetId'] = opts[:'ad_set_id'] if !opts[:'ad_set_id'].nil?
|
|
1185
|
+
query_params[:'status'] = opts[:'status'] if !opts[:'status'].nil?
|
|
1186
|
+
query_params[:'matchType'] = opts[:'match_type'] if !opts[:'match_type'].nil?
|
|
1187
|
+
query_params[:'negative'] = opts[:'negative'] if !opts[:'negative'].nil?
|
|
1188
|
+
query_params[:'search'] = opts[:'search'] if !opts[:'search'].nil?
|
|
1189
|
+
|
|
1190
|
+
# header parameters
|
|
1191
|
+
header_params = opts[:header_params] || {}
|
|
1192
|
+
# HTTP header 'Accept' (if needed)
|
|
1193
|
+
header_params['Accept'] = @api_client.select_header_accept(['application/json']) unless header_params['Accept']
|
|
1194
|
+
|
|
1195
|
+
# form parameters
|
|
1196
|
+
form_params = opts[:form_params] || {}
|
|
1197
|
+
|
|
1198
|
+
# http body (model)
|
|
1199
|
+
post_body = opts[:debug_body]
|
|
1200
|
+
|
|
1201
|
+
# return_type
|
|
1202
|
+
return_type = opts[:debug_return_type] || 'ListAdKeywords200Response'
|
|
1203
|
+
|
|
1204
|
+
# auth_names
|
|
1205
|
+
auth_names = opts[:debug_auth_names] || ['bearerAuth']
|
|
1206
|
+
|
|
1207
|
+
new_options = opts.merge(
|
|
1208
|
+
:operation => :"AdCampaignsApi.list_ad_keywords",
|
|
1209
|
+
:header_params => header_params,
|
|
1210
|
+
:query_params => query_params,
|
|
1211
|
+
:form_params => form_params,
|
|
1212
|
+
:body => post_body,
|
|
1213
|
+
:auth_names => auth_names,
|
|
1214
|
+
:return_type => return_type
|
|
1215
|
+
)
|
|
1216
|
+
|
|
1217
|
+
data, status_code, headers = @api_client.call_api(:GET, local_var_path, new_options)
|
|
1218
|
+
if @api_client.config.debugging
|
|
1219
|
+
@api_client.config.logger.debug "API called: AdCampaignsApi#list_ad_keywords\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
|
|
1220
|
+
end
|
|
1221
|
+
return data, status_code, headers
|
|
1222
|
+
end
|
|
1223
|
+
|
|
1110
1224
|
# List ads
|
|
1111
1225
|
# Returns a paginated list of ads with metrics computed over an optional date range. Use source=all to include externally-synced ads from platform ad managers. If no date range is provided, defaults to the last 90 days. Date range is capped at 730 days max. To find the Zernio ad behind a comment you see in Meta Business Manager, filter by platformAdId (the Meta ad ID), effectiveObjectStoryId (Facebook), or effectiveInstagramMediaId (Instagram) — those are the post/media the ad's engagement lives on, and are also returned on each ad's `creative` object. Then call GET /v1/ads/{adId}/comments with the returned ad id.
|
|
1112
1226
|
# @param [Hash] opts the optional parameters
|
|
@@ -27,7 +27,7 @@ module Zernio
|
|
|
27
27
|
# For `geo` only — the area(s) the registered address must be in.
|
|
28
28
|
attr_accessor :areas
|
|
29
29
|
|
|
30
|
-
# Live inventory grouped by area code, largest stock first. Empty when out of stock (or the area lookup failed). Pass a chosen `ndc` as `areaCode` on POST /v1/phone-numbers/purchase (or on the KYC submit for regulated countries) to require that area.
|
|
30
|
+
# Live inventory grouped by area code, largest stock first. For US and CA this is the full country inventory (every area code with stock, named by state/province); other countries list the areas in the latest inventory page (up to 500 numbers, which for most countries is the entire pool). Empty when out of stock (or the area lookup failed). Pass a chosen `ndc` as `areaCode` on POST /v1/phone-numbers/purchase (or on the KYC submit for regulated countries) to require that area.
|
|
31
31
|
attr_accessor :area_options
|
|
32
32
|
|
|
33
33
|
class EnumAttributeValidator
|
data/lib/zernio-sdk/models/check_phone_number_availability200_response_area_options_inner.rb
CHANGED
|
@@ -18,10 +18,10 @@ module Zernio
|
|
|
18
18
|
# Area code (national destination code), e.g. \"11\".
|
|
19
19
|
attr_accessor :ndc
|
|
20
20
|
|
|
21
|
-
#
|
|
21
|
+
# Area name: state/province for US/CA (e.g. \"Minnesota\"), city otherwise (e.g. \"Sao Paulo\").
|
|
22
22
|
attr_accessor :name
|
|
23
23
|
|
|
24
|
-
#
|
|
24
|
+
# Numbers available in this area: country-wide count for US/CA, numbers seen on the latest inventory page otherwise.
|
|
25
25
|
attr_accessor :count
|
|
26
26
|
|
|
27
27
|
# Attribute mapping from ruby-style variable name to JSON key.
|
|
@@ -0,0 +1,158 @@
|
|
|
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 ListAdKeywords200Response < ApiModelBase
|
|
18
|
+
attr_accessor :keywords
|
|
19
|
+
|
|
20
|
+
attr_accessor :pagination
|
|
21
|
+
|
|
22
|
+
# Attribute mapping from ruby-style variable name to JSON key.
|
|
23
|
+
def self.attribute_map
|
|
24
|
+
{
|
|
25
|
+
:'keywords' => :'keywords',
|
|
26
|
+
:'pagination' => :'pagination'
|
|
27
|
+
}
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
# Returns attribute mapping this model knows about
|
|
31
|
+
def self.acceptable_attribute_map
|
|
32
|
+
attribute_map
|
|
33
|
+
end
|
|
34
|
+
|
|
35
|
+
# Returns all the JSON keys this model knows about
|
|
36
|
+
def self.acceptable_attributes
|
|
37
|
+
acceptable_attribute_map.values
|
|
38
|
+
end
|
|
39
|
+
|
|
40
|
+
# Attribute type mapping.
|
|
41
|
+
def self.openapi_types
|
|
42
|
+
{
|
|
43
|
+
:'keywords' => :'Array<ListAdKeywords200ResponseKeywordsInner>',
|
|
44
|
+
:'pagination' => :'Pagination'
|
|
45
|
+
}
|
|
46
|
+
end
|
|
47
|
+
|
|
48
|
+
# List of attributes with nullable: true
|
|
49
|
+
def self.openapi_nullable
|
|
50
|
+
Set.new([
|
|
51
|
+
])
|
|
52
|
+
end
|
|
53
|
+
|
|
54
|
+
# Initializes the object
|
|
55
|
+
# @param [Hash] attributes Model attributes in the form of hash
|
|
56
|
+
def initialize(attributes = {})
|
|
57
|
+
if (!attributes.is_a?(Hash))
|
|
58
|
+
fail ArgumentError, "The input argument (attributes) must be a hash in `Zernio::ListAdKeywords200Response` initialize method"
|
|
59
|
+
end
|
|
60
|
+
|
|
61
|
+
# check to see if the attribute exists and convert string to symbol for hash key
|
|
62
|
+
acceptable_attribute_map = self.class.acceptable_attribute_map
|
|
63
|
+
attributes = attributes.each_with_object({}) { |(k, v), h|
|
|
64
|
+
if (!acceptable_attribute_map.key?(k.to_sym))
|
|
65
|
+
fail ArgumentError, "`#{k}` is not a valid attribute in `Zernio::ListAdKeywords200Response`. Please check the name to make sure it's valid. List of attributes: " + acceptable_attribute_map.keys.inspect
|
|
66
|
+
end
|
|
67
|
+
h[k.to_sym] = v
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
if attributes.key?(:'keywords')
|
|
71
|
+
if (value = attributes[:'keywords']).is_a?(Array)
|
|
72
|
+
self.keywords = value
|
|
73
|
+
end
|
|
74
|
+
end
|
|
75
|
+
|
|
76
|
+
if attributes.key?(:'pagination')
|
|
77
|
+
self.pagination = attributes[:'pagination']
|
|
78
|
+
end
|
|
79
|
+
end
|
|
80
|
+
|
|
81
|
+
# Show invalid properties with the reasons. Usually used together with valid?
|
|
82
|
+
# @return Array for valid properties with the reasons
|
|
83
|
+
def list_invalid_properties
|
|
84
|
+
warn '[DEPRECATED] the `list_invalid_properties` method is obsolete'
|
|
85
|
+
invalid_properties = Array.new
|
|
86
|
+
invalid_properties
|
|
87
|
+
end
|
|
88
|
+
|
|
89
|
+
# Check to see if the all the properties in the model are valid
|
|
90
|
+
# @return true if the model is valid
|
|
91
|
+
def valid?
|
|
92
|
+
warn '[DEPRECATED] the `valid?` method is obsolete'
|
|
93
|
+
true
|
|
94
|
+
end
|
|
95
|
+
|
|
96
|
+
# Checks equality by comparing each attribute.
|
|
97
|
+
# @param [Object] Object to be compared
|
|
98
|
+
def ==(o)
|
|
99
|
+
return true if self.equal?(o)
|
|
100
|
+
self.class == o.class &&
|
|
101
|
+
keywords == o.keywords &&
|
|
102
|
+
pagination == o.pagination
|
|
103
|
+
end
|
|
104
|
+
|
|
105
|
+
# @see the `==` method
|
|
106
|
+
# @param [Object] Object to be compared
|
|
107
|
+
def eql?(o)
|
|
108
|
+
self == o
|
|
109
|
+
end
|
|
110
|
+
|
|
111
|
+
# Calculates hash code according to all attributes.
|
|
112
|
+
# @return [Integer] Hash code
|
|
113
|
+
def hash
|
|
114
|
+
[keywords, pagination].hash
|
|
115
|
+
end
|
|
116
|
+
|
|
117
|
+
# Builds the object from hash
|
|
118
|
+
# @param [Hash] attributes Model attributes in the form of hash
|
|
119
|
+
# @return [Object] Returns the model itself
|
|
120
|
+
def self.build_from_hash(attributes)
|
|
121
|
+
return nil unless attributes.is_a?(Hash)
|
|
122
|
+
attributes = attributes.transform_keys(&:to_sym)
|
|
123
|
+
transformed_hash = {}
|
|
124
|
+
openapi_types.each_pair do |key, type|
|
|
125
|
+
if attributes.key?(attribute_map[key]) && attributes[attribute_map[key]].nil?
|
|
126
|
+
transformed_hash["#{key}"] = nil
|
|
127
|
+
elsif type =~ /\AArray<(.*)>/i
|
|
128
|
+
# check to ensure the input is an array given that the attribute
|
|
129
|
+
# is documented as an array but the input is not
|
|
130
|
+
if attributes[attribute_map[key]].is_a?(Array)
|
|
131
|
+
transformed_hash["#{key}"] = attributes[attribute_map[key]].map { |v| _deserialize($1, v) }
|
|
132
|
+
end
|
|
133
|
+
elsif !attributes[attribute_map[key]].nil?
|
|
134
|
+
transformed_hash["#{key}"] = _deserialize(type, attributes[attribute_map[key]])
|
|
135
|
+
end
|
|
136
|
+
end
|
|
137
|
+
new(transformed_hash)
|
|
138
|
+
end
|
|
139
|
+
|
|
140
|
+
# Returns the object in the form of hash
|
|
141
|
+
# @return [Hash] Returns the object in the form of hash
|
|
142
|
+
def to_hash
|
|
143
|
+
hash = {}
|
|
144
|
+
self.class.attribute_map.each_pair do |attr, param|
|
|
145
|
+
value = self.send(attr)
|
|
146
|
+
if value.nil?
|
|
147
|
+
is_nullable = self.class.openapi_nullable.include?(attr)
|
|
148
|
+
next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}"))
|
|
149
|
+
end
|
|
150
|
+
|
|
151
|
+
hash[param] = _to_hash(value)
|
|
152
|
+
end
|
|
153
|
+
hash
|
|
154
|
+
end
|
|
155
|
+
|
|
156
|
+
end
|
|
157
|
+
|
|
158
|
+
end
|
|
@@ -0,0 +1,348 @@
|
|
|
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 ListAdKeywords200ResponseKeywordsInner < ApiModelBase
|
|
18
|
+
attr_accessor :id
|
|
19
|
+
|
|
20
|
+
# Social account ID owning the sync
|
|
21
|
+
attr_accessor :account_id
|
|
22
|
+
|
|
23
|
+
attr_accessor :profile_id
|
|
24
|
+
|
|
25
|
+
attr_accessor :platform
|
|
26
|
+
|
|
27
|
+
# Google customer ID
|
|
28
|
+
attr_accessor :ad_account_id
|
|
29
|
+
|
|
30
|
+
attr_accessor :campaign_id
|
|
31
|
+
|
|
32
|
+
attr_accessor :campaign_name
|
|
33
|
+
|
|
34
|
+
attr_accessor :campaign_status
|
|
35
|
+
|
|
36
|
+
# Google ad group ID
|
|
37
|
+
attr_accessor :ad_set_id
|
|
38
|
+
|
|
39
|
+
attr_accessor :ad_set_name
|
|
40
|
+
|
|
41
|
+
attr_accessor :ad_set_status
|
|
42
|
+
|
|
43
|
+
attr_accessor :keyword
|
|
44
|
+
|
|
45
|
+
attr_accessor :match_type
|
|
46
|
+
|
|
47
|
+
attr_accessor :status
|
|
48
|
+
|
|
49
|
+
attr_accessor :negative
|
|
50
|
+
|
|
51
|
+
attr_accessor :synced_at
|
|
52
|
+
|
|
53
|
+
class EnumAttributeValidator
|
|
54
|
+
attr_reader :datatype
|
|
55
|
+
attr_reader :allowable_values
|
|
56
|
+
|
|
57
|
+
def initialize(datatype, allowable_values)
|
|
58
|
+
@allowable_values = allowable_values.map do |value|
|
|
59
|
+
case datatype.to_s
|
|
60
|
+
when /Integer/i
|
|
61
|
+
value.to_i
|
|
62
|
+
when /Float/i
|
|
63
|
+
value.to_f
|
|
64
|
+
else
|
|
65
|
+
value
|
|
66
|
+
end
|
|
67
|
+
end
|
|
68
|
+
end
|
|
69
|
+
|
|
70
|
+
def valid?(value)
|
|
71
|
+
!value || allowable_values.include?(value)
|
|
72
|
+
end
|
|
73
|
+
end
|
|
74
|
+
|
|
75
|
+
# Attribute mapping from ruby-style variable name to JSON key.
|
|
76
|
+
def self.attribute_map
|
|
77
|
+
{
|
|
78
|
+
:'id' => :'id',
|
|
79
|
+
:'account_id' => :'accountId',
|
|
80
|
+
:'profile_id' => :'profileId',
|
|
81
|
+
:'platform' => :'platform',
|
|
82
|
+
:'ad_account_id' => :'adAccountId',
|
|
83
|
+
:'campaign_id' => :'campaignId',
|
|
84
|
+
:'campaign_name' => :'campaignName',
|
|
85
|
+
:'campaign_status' => :'campaignStatus',
|
|
86
|
+
:'ad_set_id' => :'adSetId',
|
|
87
|
+
:'ad_set_name' => :'adSetName',
|
|
88
|
+
:'ad_set_status' => :'adSetStatus',
|
|
89
|
+
:'keyword' => :'keyword',
|
|
90
|
+
:'match_type' => :'matchType',
|
|
91
|
+
:'status' => :'status',
|
|
92
|
+
:'negative' => :'negative',
|
|
93
|
+
:'synced_at' => :'syncedAt'
|
|
94
|
+
}
|
|
95
|
+
end
|
|
96
|
+
|
|
97
|
+
# Returns attribute mapping this model knows about
|
|
98
|
+
def self.acceptable_attribute_map
|
|
99
|
+
attribute_map
|
|
100
|
+
end
|
|
101
|
+
|
|
102
|
+
# Returns all the JSON keys this model knows about
|
|
103
|
+
def self.acceptable_attributes
|
|
104
|
+
acceptable_attribute_map.values
|
|
105
|
+
end
|
|
106
|
+
|
|
107
|
+
# Attribute type mapping.
|
|
108
|
+
def self.openapi_types
|
|
109
|
+
{
|
|
110
|
+
:'id' => :'String',
|
|
111
|
+
:'account_id' => :'String',
|
|
112
|
+
:'profile_id' => :'String',
|
|
113
|
+
:'platform' => :'String',
|
|
114
|
+
:'ad_account_id' => :'String',
|
|
115
|
+
:'campaign_id' => :'String',
|
|
116
|
+
:'campaign_name' => :'String',
|
|
117
|
+
:'campaign_status' => :'String',
|
|
118
|
+
:'ad_set_id' => :'String',
|
|
119
|
+
:'ad_set_name' => :'String',
|
|
120
|
+
:'ad_set_status' => :'String',
|
|
121
|
+
:'keyword' => :'String',
|
|
122
|
+
:'match_type' => :'String',
|
|
123
|
+
:'status' => :'String',
|
|
124
|
+
:'negative' => :'Boolean',
|
|
125
|
+
:'synced_at' => :'Time'
|
|
126
|
+
}
|
|
127
|
+
end
|
|
128
|
+
|
|
129
|
+
# List of attributes with nullable: true
|
|
130
|
+
def self.openapi_nullable
|
|
131
|
+
Set.new([
|
|
132
|
+
:'campaign_name',
|
|
133
|
+
:'campaign_status',
|
|
134
|
+
:'ad_set_name',
|
|
135
|
+
:'ad_set_status',
|
|
136
|
+
:'synced_at'
|
|
137
|
+
])
|
|
138
|
+
end
|
|
139
|
+
|
|
140
|
+
# Initializes the object
|
|
141
|
+
# @param [Hash] attributes Model attributes in the form of hash
|
|
142
|
+
def initialize(attributes = {})
|
|
143
|
+
if (!attributes.is_a?(Hash))
|
|
144
|
+
fail ArgumentError, "The input argument (attributes) must be a hash in `Zernio::ListAdKeywords200ResponseKeywordsInner` initialize method"
|
|
145
|
+
end
|
|
146
|
+
|
|
147
|
+
# check to see if the attribute exists and convert string to symbol for hash key
|
|
148
|
+
acceptable_attribute_map = self.class.acceptable_attribute_map
|
|
149
|
+
attributes = attributes.each_with_object({}) { |(k, v), h|
|
|
150
|
+
if (!acceptable_attribute_map.key?(k.to_sym))
|
|
151
|
+
fail ArgumentError, "`#{k}` is not a valid attribute in `Zernio::ListAdKeywords200ResponseKeywordsInner`. Please check the name to make sure it's valid. List of attributes: " + acceptable_attribute_map.keys.inspect
|
|
152
|
+
end
|
|
153
|
+
h[k.to_sym] = v
|
|
154
|
+
}
|
|
155
|
+
|
|
156
|
+
if attributes.key?(:'id')
|
|
157
|
+
self.id = attributes[:'id']
|
|
158
|
+
end
|
|
159
|
+
|
|
160
|
+
if attributes.key?(:'account_id')
|
|
161
|
+
self.account_id = attributes[:'account_id']
|
|
162
|
+
end
|
|
163
|
+
|
|
164
|
+
if attributes.key?(:'profile_id')
|
|
165
|
+
self.profile_id = attributes[:'profile_id']
|
|
166
|
+
end
|
|
167
|
+
|
|
168
|
+
if attributes.key?(:'platform')
|
|
169
|
+
self.platform = attributes[:'platform']
|
|
170
|
+
end
|
|
171
|
+
|
|
172
|
+
if attributes.key?(:'ad_account_id')
|
|
173
|
+
self.ad_account_id = attributes[:'ad_account_id']
|
|
174
|
+
end
|
|
175
|
+
|
|
176
|
+
if attributes.key?(:'campaign_id')
|
|
177
|
+
self.campaign_id = attributes[:'campaign_id']
|
|
178
|
+
end
|
|
179
|
+
|
|
180
|
+
if attributes.key?(:'campaign_name')
|
|
181
|
+
self.campaign_name = attributes[:'campaign_name']
|
|
182
|
+
end
|
|
183
|
+
|
|
184
|
+
if attributes.key?(:'campaign_status')
|
|
185
|
+
self.campaign_status = attributes[:'campaign_status']
|
|
186
|
+
end
|
|
187
|
+
|
|
188
|
+
if attributes.key?(:'ad_set_id')
|
|
189
|
+
self.ad_set_id = attributes[:'ad_set_id']
|
|
190
|
+
end
|
|
191
|
+
|
|
192
|
+
if attributes.key?(:'ad_set_name')
|
|
193
|
+
self.ad_set_name = attributes[:'ad_set_name']
|
|
194
|
+
end
|
|
195
|
+
|
|
196
|
+
if attributes.key?(:'ad_set_status')
|
|
197
|
+
self.ad_set_status = attributes[:'ad_set_status']
|
|
198
|
+
end
|
|
199
|
+
|
|
200
|
+
if attributes.key?(:'keyword')
|
|
201
|
+
self.keyword = attributes[:'keyword']
|
|
202
|
+
end
|
|
203
|
+
|
|
204
|
+
if attributes.key?(:'match_type')
|
|
205
|
+
self.match_type = attributes[:'match_type']
|
|
206
|
+
end
|
|
207
|
+
|
|
208
|
+
if attributes.key?(:'status')
|
|
209
|
+
self.status = attributes[:'status']
|
|
210
|
+
end
|
|
211
|
+
|
|
212
|
+
if attributes.key?(:'negative')
|
|
213
|
+
self.negative = attributes[:'negative']
|
|
214
|
+
end
|
|
215
|
+
|
|
216
|
+
if attributes.key?(:'synced_at')
|
|
217
|
+
self.synced_at = attributes[:'synced_at']
|
|
218
|
+
end
|
|
219
|
+
end
|
|
220
|
+
|
|
221
|
+
# Show invalid properties with the reasons. Usually used together with valid?
|
|
222
|
+
# @return Array for valid properties with the reasons
|
|
223
|
+
def list_invalid_properties
|
|
224
|
+
warn '[DEPRECATED] the `list_invalid_properties` method is obsolete'
|
|
225
|
+
invalid_properties = Array.new
|
|
226
|
+
invalid_properties
|
|
227
|
+
end
|
|
228
|
+
|
|
229
|
+
# Check to see if the all the properties in the model are valid
|
|
230
|
+
# @return true if the model is valid
|
|
231
|
+
def valid?
|
|
232
|
+
warn '[DEPRECATED] the `valid?` method is obsolete'
|
|
233
|
+
platform_validator = EnumAttributeValidator.new('String', ["google"])
|
|
234
|
+
return false unless platform_validator.valid?(@platform)
|
|
235
|
+
match_type_validator = EnumAttributeValidator.new('String', ["exact", "phrase", "broad", "unknown"])
|
|
236
|
+
return false unless match_type_validator.valid?(@match_type)
|
|
237
|
+
status_validator = EnumAttributeValidator.new('String', ["active", "paused"])
|
|
238
|
+
return false unless status_validator.valid?(@status)
|
|
239
|
+
true
|
|
240
|
+
end
|
|
241
|
+
|
|
242
|
+
# Custom attribute writer method checking allowed values (enum).
|
|
243
|
+
# @param [Object] platform Object to be assigned
|
|
244
|
+
def platform=(platform)
|
|
245
|
+
validator = EnumAttributeValidator.new('String', ["google"])
|
|
246
|
+
unless validator.valid?(platform)
|
|
247
|
+
fail ArgumentError, "invalid value for \"platform\", must be one of #{validator.allowable_values}."
|
|
248
|
+
end
|
|
249
|
+
@platform = platform
|
|
250
|
+
end
|
|
251
|
+
|
|
252
|
+
# Custom attribute writer method checking allowed values (enum).
|
|
253
|
+
# @param [Object] match_type Object to be assigned
|
|
254
|
+
def match_type=(match_type)
|
|
255
|
+
validator = EnumAttributeValidator.new('String', ["exact", "phrase", "broad", "unknown"])
|
|
256
|
+
unless validator.valid?(match_type)
|
|
257
|
+
fail ArgumentError, "invalid value for \"match_type\", must be one of #{validator.allowable_values}."
|
|
258
|
+
end
|
|
259
|
+
@match_type = match_type
|
|
260
|
+
end
|
|
261
|
+
|
|
262
|
+
# Custom attribute writer method checking allowed values (enum).
|
|
263
|
+
# @param [Object] status Object to be assigned
|
|
264
|
+
def status=(status)
|
|
265
|
+
validator = EnumAttributeValidator.new('String', ["active", "paused"])
|
|
266
|
+
unless validator.valid?(status)
|
|
267
|
+
fail ArgumentError, "invalid value for \"status\", must be one of #{validator.allowable_values}."
|
|
268
|
+
end
|
|
269
|
+
@status = status
|
|
270
|
+
end
|
|
271
|
+
|
|
272
|
+
# Checks equality by comparing each attribute.
|
|
273
|
+
# @param [Object] Object to be compared
|
|
274
|
+
def ==(o)
|
|
275
|
+
return true if self.equal?(o)
|
|
276
|
+
self.class == o.class &&
|
|
277
|
+
id == o.id &&
|
|
278
|
+
account_id == o.account_id &&
|
|
279
|
+
profile_id == o.profile_id &&
|
|
280
|
+
platform == o.platform &&
|
|
281
|
+
ad_account_id == o.ad_account_id &&
|
|
282
|
+
campaign_id == o.campaign_id &&
|
|
283
|
+
campaign_name == o.campaign_name &&
|
|
284
|
+
campaign_status == o.campaign_status &&
|
|
285
|
+
ad_set_id == o.ad_set_id &&
|
|
286
|
+
ad_set_name == o.ad_set_name &&
|
|
287
|
+
ad_set_status == o.ad_set_status &&
|
|
288
|
+
keyword == o.keyword &&
|
|
289
|
+
match_type == o.match_type &&
|
|
290
|
+
status == o.status &&
|
|
291
|
+
negative == o.negative &&
|
|
292
|
+
synced_at == o.synced_at
|
|
293
|
+
end
|
|
294
|
+
|
|
295
|
+
# @see the `==` method
|
|
296
|
+
# @param [Object] Object to be compared
|
|
297
|
+
def eql?(o)
|
|
298
|
+
self == o
|
|
299
|
+
end
|
|
300
|
+
|
|
301
|
+
# Calculates hash code according to all attributes.
|
|
302
|
+
# @return [Integer] Hash code
|
|
303
|
+
def hash
|
|
304
|
+
[id, account_id, profile_id, platform, ad_account_id, campaign_id, campaign_name, campaign_status, ad_set_id, ad_set_name, ad_set_status, keyword, match_type, status, negative, synced_at].hash
|
|
305
|
+
end
|
|
306
|
+
|
|
307
|
+
# Builds the object from hash
|
|
308
|
+
# @param [Hash] attributes Model attributes in the form of hash
|
|
309
|
+
# @return [Object] Returns the model itself
|
|
310
|
+
def self.build_from_hash(attributes)
|
|
311
|
+
return nil unless attributes.is_a?(Hash)
|
|
312
|
+
attributes = attributes.transform_keys(&:to_sym)
|
|
313
|
+
transformed_hash = {}
|
|
314
|
+
openapi_types.each_pair do |key, type|
|
|
315
|
+
if attributes.key?(attribute_map[key]) && attributes[attribute_map[key]].nil?
|
|
316
|
+
transformed_hash["#{key}"] = nil
|
|
317
|
+
elsif type =~ /\AArray<(.*)>/i
|
|
318
|
+
# check to ensure the input is an array given that the attribute
|
|
319
|
+
# is documented as an array but the input is not
|
|
320
|
+
if attributes[attribute_map[key]].is_a?(Array)
|
|
321
|
+
transformed_hash["#{key}"] = attributes[attribute_map[key]].map { |v| _deserialize($1, v) }
|
|
322
|
+
end
|
|
323
|
+
elsif !attributes[attribute_map[key]].nil?
|
|
324
|
+
transformed_hash["#{key}"] = _deserialize(type, attributes[attribute_map[key]])
|
|
325
|
+
end
|
|
326
|
+
end
|
|
327
|
+
new(transformed_hash)
|
|
328
|
+
end
|
|
329
|
+
|
|
330
|
+
# Returns the object in the form of hash
|
|
331
|
+
# @return [Hash] Returns the object in the form of hash
|
|
332
|
+
def to_hash
|
|
333
|
+
hash = {}
|
|
334
|
+
self.class.attribute_map.each_pair do |attr, param|
|
|
335
|
+
value = self.send(attr)
|
|
336
|
+
if value.nil?
|
|
337
|
+
is_nullable = self.class.openapi_nullable.include?(attr)
|
|
338
|
+
next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}"))
|
|
339
|
+
end
|
|
340
|
+
|
|
341
|
+
hash[param] = _to_hash(value)
|
|
342
|
+
end
|
|
343
|
+
hash
|
|
344
|
+
end
|
|
345
|
+
|
|
346
|
+
end
|
|
347
|
+
|
|
348
|
+
end
|
data/lib/zernio-sdk/version.rb
CHANGED
data/lib/zernio-sdk.rb
CHANGED
|
@@ -795,6 +795,8 @@ require 'zernio-sdk/models/list_ad_catalogs200_response'
|
|
|
795
795
|
require 'zernio-sdk/models/list_ad_catalogs200_response_catalogs_inner'
|
|
796
796
|
require 'zernio-sdk/models/list_ad_creatives200_response'
|
|
797
797
|
require 'zernio-sdk/models/list_ad_images200_response'
|
|
798
|
+
require 'zernio-sdk/models/list_ad_keywords200_response'
|
|
799
|
+
require 'zernio-sdk/models/list_ad_keywords200_response_keywords_inner'
|
|
798
800
|
require 'zernio-sdk/models/list_ad_labels200_response'
|
|
799
801
|
require 'zernio-sdk/models/list_ad_studies200_response'
|
|
800
802
|
require 'zernio-sdk/models/list_ads200_response'
|
data/openapi.yaml
CHANGED
|
@@ -28166,16 +28166,20 @@ paths:
|
|
|
28166
28166
|
type: array
|
|
28167
28167
|
description: >
|
|
28168
28168
|
Live inventory grouped by area code, largest stock
|
|
28169
|
-
first.
|
|
28170
|
-
|
|
28169
|
+
first. For US and CA this is the full country inventory
|
|
28170
|
+
(every area code with stock, named by state/province);
|
|
28171
|
+
other countries list the areas in the latest inventory
|
|
28172
|
+
page (up to 500 numbers, which for most countries is the
|
|
28173
|
+
entire pool). Empty when out of stock (or the area
|
|
28174
|
+
lookup failed). Pass a chosen `ndc` as `areaCode` on POST
|
|
28171
28175
|
/v1/phone-numbers/purchase (or on the KYC submit for
|
|
28172
28176
|
regulated countries) to require that area.
|
|
28173
28177
|
items:
|
|
28174
28178
|
type: object
|
|
28175
28179
|
properties:
|
|
28176
28180
|
ndc: { type: string, description: 'Area code (national destination code), e.g. "11".' }
|
|
28177
|
-
name: { type: string, description: '
|
|
28178
|
-
count: { type: integer, description:
|
|
28181
|
+
name: { type: string, description: 'Area name: state/province for US/CA (e.g. "Minnesota"), city otherwise (e.g. "Sao Paulo").' }
|
|
28182
|
+
count: { type: integer, description: 'Numbers available in this area: country-wide count for US/CA, numbers seen on the latest inventory page otherwise.' }
|
|
28179
28183
|
'400': { description: Country not offerable }
|
|
28180
28184
|
'401': { $ref: '#/components/responses/Unauthorized' }
|
|
28181
28185
|
|
|
@@ -28532,16 +28536,20 @@ paths:
|
|
|
28532
28536
|
type: array
|
|
28533
28537
|
description: >
|
|
28534
28538
|
Live inventory grouped by area code, largest stock
|
|
28535
|
-
first.
|
|
28536
|
-
|
|
28539
|
+
first. For US and CA this is the full country inventory
|
|
28540
|
+
(every area code with stock, named by state/province);
|
|
28541
|
+
other countries list the areas in the latest inventory
|
|
28542
|
+
page (up to 500 numbers, which for most countries is the
|
|
28543
|
+
entire pool). Empty when out of stock (or the area
|
|
28544
|
+
lookup failed). Pass a chosen `ndc` as `areaCode` on POST
|
|
28537
28545
|
/v1/phone-numbers/purchase (or on the KYC submit for
|
|
28538
28546
|
regulated countries) to require that area.
|
|
28539
28547
|
items:
|
|
28540
28548
|
type: object
|
|
28541
28549
|
properties:
|
|
28542
28550
|
ndc: { type: string, description: 'Area code (national destination code), e.g. "11".' }
|
|
28543
|
-
name: { type: string, description: '
|
|
28544
|
-
count: { type: integer, description:
|
|
28551
|
+
name: { type: string, description: 'Area name: state/province for US/CA (e.g. "Minnesota"), city otherwise (e.g. "Sao Paulo").' }
|
|
28552
|
+
count: { type: integer, description: 'Numbers available in this area: country-wide count for US/CA, numbers seen on the latest inventory page otherwise.' }
|
|
28545
28553
|
'400': { description: Country not offerable }
|
|
28546
28554
|
'401': { $ref: '#/components/responses/Unauthorized' }
|
|
28547
28555
|
|
|
@@ -33711,6 +33719,67 @@ paths:
|
|
|
33711
33719
|
'403':
|
|
33712
33720
|
description: Ads access required. Legacy plans need the Ads add-on; included by default on usage-based plans.
|
|
33713
33721
|
|
|
33722
|
+
/v1/ads/keywords:
|
|
33723
|
+
get:
|
|
33724
|
+
operationId: listAdKeywords
|
|
33725
|
+
tags: ["Ad Campaigns"]
|
|
33726
|
+
x-platforms: ["google"]
|
|
33727
|
+
summary: List Search keywords
|
|
33728
|
+
description: |
|
|
33729
|
+
Returns the Google Search keyword criteria (positive and negative) synced from
|
|
33730
|
+
connected Google Ads accounts, one row per ad-group keyword. Populated by the
|
|
33731
|
+
periodic ads discovery sweep (roughly every 3 hours per account), so keywords
|
|
33732
|
+
added on Google appear with that delay. Campaign-level negative keywords are
|
|
33733
|
+
not included; only ad-group-level criteria are.
|
|
33734
|
+
security:
|
|
33735
|
+
- bearerAuth: []
|
|
33736
|
+
parameters:
|
|
33737
|
+
- $ref: '#/components/parameters/PageParam'
|
|
33738
|
+
- { name: limit, in: query, schema: { type: integer, minimum: 1, maximum: 500, default: 50 } }
|
|
33739
|
+
- { name: accountId, in: query, schema: { type: string }, description: Social account ID }
|
|
33740
|
+
- { name: adAccountId, in: query, schema: { type: string }, description: 'Platform ad account ID (Google customer ID). Mirrors the same filter on /v1/ads.' }
|
|
33741
|
+
- { name: profileId, in: query, schema: { type: string }, description: Profile ID }
|
|
33742
|
+
- { name: campaignId, in: query, schema: { type: string }, description: Platform campaign ID }
|
|
33743
|
+
- { name: adSetId, in: query, schema: { type: string }, description: 'Platform ad group ID (Google ad group)' }
|
|
33744
|
+
- { name: status, in: query, schema: { type: string, enum: [active, paused] }, description: Keyword criterion status }
|
|
33745
|
+
- { name: matchType, in: query, schema: { type: string, enum: [exact, phrase, broad, unknown] } }
|
|
33746
|
+
- { name: negative, in: query, schema: { type: boolean }, description: 'true = negative keywords only, false = positive only. Omit for both.' }
|
|
33747
|
+
- { name: search, in: query, schema: { type: string, maxLength: 200 }, description: 'Case-insensitive substring match on the keyword text' }
|
|
33748
|
+
responses:
|
|
33749
|
+
'200':
|
|
33750
|
+
description: Paginated keywords
|
|
33751
|
+
content:
|
|
33752
|
+
application/json:
|
|
33753
|
+
schema:
|
|
33754
|
+
type: object
|
|
33755
|
+
properties:
|
|
33756
|
+
keywords:
|
|
33757
|
+
type: array
|
|
33758
|
+
items:
|
|
33759
|
+
type: object
|
|
33760
|
+
properties:
|
|
33761
|
+
id: { type: string }
|
|
33762
|
+
accountId: { type: string, description: Social account ID owning the sync }
|
|
33763
|
+
profileId: { type: string }
|
|
33764
|
+
platform: { type: string, enum: [google] }
|
|
33765
|
+
adAccountId: { type: string, description: Google customer ID }
|
|
33766
|
+
campaignId: { type: string }
|
|
33767
|
+
campaignName: { type: [string, "null"] }
|
|
33768
|
+
campaignStatus: { type: [string, "null"] }
|
|
33769
|
+
adSetId: { type: string, description: Google ad group ID }
|
|
33770
|
+
adSetName: { type: [string, "null"] }
|
|
33771
|
+
adSetStatus: { type: [string, "null"] }
|
|
33772
|
+
keyword: { type: string }
|
|
33773
|
+
matchType: { type: string, enum: [exact, phrase, broad, unknown] }
|
|
33774
|
+
status: { type: string, enum: [active, paused] }
|
|
33775
|
+
negative: { type: boolean }
|
|
33776
|
+
syncedAt: { type: [string, "null"], format: date-time }
|
|
33777
|
+
pagination: { $ref: '#/components/schemas/Pagination' }
|
|
33778
|
+
'400': { $ref: '#/components/responses/BadRequest' }
|
|
33779
|
+
'401': { $ref: '#/components/responses/Unauthorized' }
|
|
33780
|
+
'403':
|
|
33781
|
+
description: Ads access required. Legacy plans need the Ads add-on; included by default on usage-based plans.
|
|
33782
|
+
|
|
33714
33783
|
/v1/ads/campaigns:
|
|
33715
33784
|
get:
|
|
33716
33785
|
operationId: listAdCampaigns
|
|
@@ -233,6 +233,28 @@ describe 'AdCampaignsApi' do
|
|
|
233
233
|
end
|
|
234
234
|
end
|
|
235
235
|
|
|
236
|
+
# unit tests for list_ad_keywords
|
|
237
|
+
# List Search keywords
|
|
238
|
+
# Returns the Google Search keyword criteria (positive and negative) synced from connected Google Ads accounts, one row per ad-group keyword. Populated by the periodic ads discovery sweep (roughly every 3 hours per account), so keywords added on Google appear with that delay. Campaign-level negative keywords are not included; only ad-group-level criteria are.
|
|
239
|
+
# @param [Hash] opts the optional parameters
|
|
240
|
+
# @option opts [Integer] :page Page number (1-based)
|
|
241
|
+
# @option opts [Integer] :limit
|
|
242
|
+
# @option opts [String] :account_id Social account ID
|
|
243
|
+
# @option opts [String] :ad_account_id Platform ad account ID (Google customer ID). Mirrors the same filter on /v1/ads.
|
|
244
|
+
# @option opts [String] :profile_id Profile ID
|
|
245
|
+
# @option opts [String] :campaign_id Platform campaign ID
|
|
246
|
+
# @option opts [String] :ad_set_id Platform ad group ID (Google ad group)
|
|
247
|
+
# @option opts [String] :status Keyword criterion status
|
|
248
|
+
# @option opts [String] :match_type
|
|
249
|
+
# @option opts [Boolean] :negative true = negative keywords only, false = positive only. Omit for both.
|
|
250
|
+
# @option opts [String] :search Case-insensitive substring match on the keyword text
|
|
251
|
+
# @return [ListAdKeywords200Response]
|
|
252
|
+
describe 'list_ad_keywords test' do
|
|
253
|
+
it 'should work' do
|
|
254
|
+
# assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/
|
|
255
|
+
end
|
|
256
|
+
end
|
|
257
|
+
|
|
236
258
|
# unit tests for list_ads
|
|
237
259
|
# List ads
|
|
238
260
|
# Returns a paginated list of ads with metrics computed over an optional date range. Use source=all to include externally-synced ads from platform ad managers. If no date range is provided, defaults to the last 90 days. Date range is capped at 730 days max. To find the Zernio ad behind a comment you see in Meta Business Manager, filter by platformAdId (the Meta ad ID), effectiveObjectStoryId (Facebook), or effectiveInstagramMediaId (Instagram) — those are the post/media the ad's engagement lives on, and are also returned on each ad's `creative` object. Then call GET /v1/ads/{adId}/comments with the returned ad id.
|
|
@@ -0,0 +1,138 @@
|
|
|
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 'spec_helper'
|
|
14
|
+
require 'json'
|
|
15
|
+
require 'date'
|
|
16
|
+
|
|
17
|
+
# Unit tests for Zernio::ListAdKeywords200ResponseKeywordsInner
|
|
18
|
+
# Automatically generated by openapi-generator (https://openapi-generator.tech)
|
|
19
|
+
# Please update as you see appropriate
|
|
20
|
+
describe Zernio::ListAdKeywords200ResponseKeywordsInner do
|
|
21
|
+
#let(:instance) { Zernio::ListAdKeywords200ResponseKeywordsInner.new }
|
|
22
|
+
|
|
23
|
+
describe 'test an instance of ListAdKeywords200ResponseKeywordsInner' do
|
|
24
|
+
it 'should create an instance of ListAdKeywords200ResponseKeywordsInner' do
|
|
25
|
+
# uncomment below to test the instance creation
|
|
26
|
+
#expect(instance).to be_instance_of(Zernio::ListAdKeywords200ResponseKeywordsInner)
|
|
27
|
+
end
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
describe 'test attribute "id"' do
|
|
31
|
+
it 'should work' do
|
|
32
|
+
# assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/
|
|
33
|
+
end
|
|
34
|
+
end
|
|
35
|
+
|
|
36
|
+
describe 'test attribute "account_id"' do
|
|
37
|
+
it 'should work' do
|
|
38
|
+
# assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/
|
|
39
|
+
end
|
|
40
|
+
end
|
|
41
|
+
|
|
42
|
+
describe 'test attribute "profile_id"' do
|
|
43
|
+
it 'should work' do
|
|
44
|
+
# assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/
|
|
45
|
+
end
|
|
46
|
+
end
|
|
47
|
+
|
|
48
|
+
describe 'test attribute "platform"' do
|
|
49
|
+
it 'should work' do
|
|
50
|
+
# assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/
|
|
51
|
+
# validator = Petstore::EnumTest::EnumAttributeValidator.new('String', ["google"])
|
|
52
|
+
# validator.allowable_values.each do |value|
|
|
53
|
+
# expect { instance.platform = value }.not_to raise_error
|
|
54
|
+
# end
|
|
55
|
+
end
|
|
56
|
+
end
|
|
57
|
+
|
|
58
|
+
describe 'test attribute "ad_account_id"' do
|
|
59
|
+
it 'should work' do
|
|
60
|
+
# assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/
|
|
61
|
+
end
|
|
62
|
+
end
|
|
63
|
+
|
|
64
|
+
describe 'test attribute "campaign_id"' do
|
|
65
|
+
it 'should work' do
|
|
66
|
+
# assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/
|
|
67
|
+
end
|
|
68
|
+
end
|
|
69
|
+
|
|
70
|
+
describe 'test attribute "campaign_name"' do
|
|
71
|
+
it 'should work' do
|
|
72
|
+
# assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/
|
|
73
|
+
end
|
|
74
|
+
end
|
|
75
|
+
|
|
76
|
+
describe 'test attribute "campaign_status"' do
|
|
77
|
+
it 'should work' do
|
|
78
|
+
# assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/
|
|
79
|
+
end
|
|
80
|
+
end
|
|
81
|
+
|
|
82
|
+
describe 'test attribute "ad_set_id"' do
|
|
83
|
+
it 'should work' do
|
|
84
|
+
# assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/
|
|
85
|
+
end
|
|
86
|
+
end
|
|
87
|
+
|
|
88
|
+
describe 'test attribute "ad_set_name"' do
|
|
89
|
+
it 'should work' do
|
|
90
|
+
# assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/
|
|
91
|
+
end
|
|
92
|
+
end
|
|
93
|
+
|
|
94
|
+
describe 'test attribute "ad_set_status"' do
|
|
95
|
+
it 'should work' do
|
|
96
|
+
# assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/
|
|
97
|
+
end
|
|
98
|
+
end
|
|
99
|
+
|
|
100
|
+
describe 'test attribute "keyword"' do
|
|
101
|
+
it 'should work' do
|
|
102
|
+
# assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/
|
|
103
|
+
end
|
|
104
|
+
end
|
|
105
|
+
|
|
106
|
+
describe 'test attribute "match_type"' do
|
|
107
|
+
it 'should work' do
|
|
108
|
+
# assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/
|
|
109
|
+
# validator = Petstore::EnumTest::EnumAttributeValidator.new('String', ["exact", "phrase", "broad", "unknown"])
|
|
110
|
+
# validator.allowable_values.each do |value|
|
|
111
|
+
# expect { instance.match_type = value }.not_to raise_error
|
|
112
|
+
# end
|
|
113
|
+
end
|
|
114
|
+
end
|
|
115
|
+
|
|
116
|
+
describe 'test attribute "status"' do
|
|
117
|
+
it 'should work' do
|
|
118
|
+
# assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/
|
|
119
|
+
# validator = Petstore::EnumTest::EnumAttributeValidator.new('String', ["active", "paused"])
|
|
120
|
+
# validator.allowable_values.each do |value|
|
|
121
|
+
# expect { instance.status = value }.not_to raise_error
|
|
122
|
+
# end
|
|
123
|
+
end
|
|
124
|
+
end
|
|
125
|
+
|
|
126
|
+
describe 'test attribute "negative"' do
|
|
127
|
+
it 'should work' do
|
|
128
|
+
# assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/
|
|
129
|
+
end
|
|
130
|
+
end
|
|
131
|
+
|
|
132
|
+
describe 'test attribute "synced_at"' do
|
|
133
|
+
it 'should work' do
|
|
134
|
+
# assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/
|
|
135
|
+
end
|
|
136
|
+
end
|
|
137
|
+
|
|
138
|
+
end
|
|
@@ -0,0 +1,42 @@
|
|
|
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 'spec_helper'
|
|
14
|
+
require 'json'
|
|
15
|
+
require 'date'
|
|
16
|
+
|
|
17
|
+
# Unit tests for Zernio::ListAdKeywords200Response
|
|
18
|
+
# Automatically generated by openapi-generator (https://openapi-generator.tech)
|
|
19
|
+
# Please update as you see appropriate
|
|
20
|
+
describe Zernio::ListAdKeywords200Response do
|
|
21
|
+
#let(:instance) { Zernio::ListAdKeywords200Response.new }
|
|
22
|
+
|
|
23
|
+
describe 'test an instance of ListAdKeywords200Response' do
|
|
24
|
+
it 'should create an instance of ListAdKeywords200Response' do
|
|
25
|
+
# uncomment below to test the instance creation
|
|
26
|
+
#expect(instance).to be_instance_of(Zernio::ListAdKeywords200Response)
|
|
27
|
+
end
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
describe 'test attribute "keywords"' do
|
|
31
|
+
it 'should work' do
|
|
32
|
+
# assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/
|
|
33
|
+
end
|
|
34
|
+
end
|
|
35
|
+
|
|
36
|
+
describe 'test attribute "pagination"' do
|
|
37
|
+
it 'should work' do
|
|
38
|
+
# assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/
|
|
39
|
+
end
|
|
40
|
+
end
|
|
41
|
+
|
|
42
|
+
end
|
|
Binary file
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: late-sdk
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.0.
|
|
4
|
+
version: 0.0.572
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- OpenAPI-Generator
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2026-07-
|
|
11
|
+
date: 2026-07-27 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: typhoeus
|
|
@@ -873,6 +873,8 @@ files:
|
|
|
873
873
|
- docs/ListAdCatalogs200ResponseCatalogsInner.md
|
|
874
874
|
- docs/ListAdCreatives200Response.md
|
|
875
875
|
- docs/ListAdImages200Response.md
|
|
876
|
+
- docs/ListAdKeywords200Response.md
|
|
877
|
+
- docs/ListAdKeywords200ResponseKeywordsInner.md
|
|
876
878
|
- docs/ListAdLabels200Response.md
|
|
877
879
|
- docs/ListAdStudies200Response.md
|
|
878
880
|
- docs/ListAds200Response.md
|
|
@@ -2472,6 +2474,8 @@ files:
|
|
|
2472
2474
|
- lib/zernio-sdk/models/list_ad_catalogs200_response_catalogs_inner.rb
|
|
2473
2475
|
- lib/zernio-sdk/models/list_ad_creatives200_response.rb
|
|
2474
2476
|
- lib/zernio-sdk/models/list_ad_images200_response.rb
|
|
2477
|
+
- lib/zernio-sdk/models/list_ad_keywords200_response.rb
|
|
2478
|
+
- lib/zernio-sdk/models/list_ad_keywords200_response_keywords_inner.rb
|
|
2475
2479
|
- lib/zernio-sdk/models/list_ad_labels200_response.rb
|
|
2476
2480
|
- lib/zernio-sdk/models/list_ad_studies200_response.rb
|
|
2477
2481
|
- lib/zernio-sdk/models/list_ads200_response.rb
|
|
@@ -4035,6 +4039,8 @@ files:
|
|
|
4035
4039
|
- spec/models/list_ad_catalogs200_response_spec.rb
|
|
4036
4040
|
- spec/models/list_ad_creatives200_response_spec.rb
|
|
4037
4041
|
- spec/models/list_ad_images200_response_spec.rb
|
|
4042
|
+
- spec/models/list_ad_keywords200_response_keywords_inner_spec.rb
|
|
4043
|
+
- spec/models/list_ad_keywords200_response_spec.rb
|
|
4038
4044
|
- spec/models/list_ad_labels200_response_spec.rb
|
|
4039
4045
|
- spec/models/list_ad_studies200_response_spec.rb
|
|
4040
4046
|
- spec/models/list_ads200_response_spec.rb
|
|
@@ -4757,7 +4763,7 @@ files:
|
|
|
4757
4763
|
- spec/models/you_tube_video_retention_response_retention_curve_inner_spec.rb
|
|
4758
4764
|
- spec/models/you_tube_video_retention_response_spec.rb
|
|
4759
4765
|
- spec/spec_helper.rb
|
|
4760
|
-
- zernio-sdk-0.0.
|
|
4766
|
+
- zernio-sdk-0.0.572.gem
|
|
4761
4767
|
- zernio-sdk.gemspec
|
|
4762
4768
|
homepage: https://openapi-generator.tech
|
|
4763
4769
|
licenses:
|
|
@@ -5357,6 +5363,7 @@ test_files:
|
|
|
5357
5363
|
- spec/models/unlike_inbox_comment200_response_spec.rb
|
|
5358
5364
|
- spec/models/update_whats_app_business_profile_request_spec.rb
|
|
5359
5365
|
- spec/models/create_discord_thread200_response_spec.rb
|
|
5366
|
+
- spec/models/list_ad_keywords200_response_spec.rb
|
|
5360
5367
|
- spec/models/update_google_business_services_request_service_items_inner_free_form_service_item_label_spec.rb
|
|
5361
5368
|
- spec/models/reddit_post_spec.rb
|
|
5362
5369
|
- spec/models/get_telegram_commands200_response_spec.rb
|
|
@@ -6156,6 +6163,7 @@ test_files:
|
|
|
6156
6163
|
- spec/models/geo_restriction_spec.rb
|
|
6157
6164
|
- spec/models/trigger_workflow200_response_execution_spec.rb
|
|
6158
6165
|
- spec/models/linked_in_aggregate_analytics_daily_response_analytics_spec.rb
|
|
6166
|
+
- spec/models/list_ad_keywords200_response_keywords_inner_spec.rb
|
|
6159
6167
|
- spec/models/create_account_group201_response_group_spec.rb
|
|
6160
6168
|
- spec/models/send_whats_app_flow_message_request_spec.rb
|
|
6161
6169
|
- spec/models/list_discord_guild_roles200_response_data_inner_spec.rb
|
data/zernio-sdk-0.0.570.gem
DELETED
|
Binary file
|