growwer 1.0.2 → 1.1.1
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 +10 -5
- data/docs/CatalogueApi.md +6 -6
- data/docs/CreateSellerMediaRequest.md +38 -0
- data/docs/CreateSellerMediaRequestPostOffer.md +24 -0
- data/docs/GetMe200ResponseCatalogue.md +1 -1
- data/docs/LinkAdditionOrderBriefingRequest.md +1 -1
- data/docs/ManagedServicesApi.md +3 -3
- data/docs/ProjectCatalogueMediaAllOfProject.md +3 -1
- data/docs/ProjectCatalogueMediaAllOfProjectAiKeywords.md +20 -0
- data/docs/SavedFiltersApi.md +1 -1
- data/docs/SellerMedia.md +2 -0
- data/docs/SellerMediaPostOffer.md +7 -1
- data/docs/SellerMediasApi.md +148 -5
- data/docs/SellerOrderPostDelivery.md +1 -1
- data/docs/SellerOrdersApi.md +1 -1
- data/docs/UpdateSellerMediaRequest.md +2 -0
- data/docs/UpdateSellerMediaRequestPostOffer.md +8 -2
- data/lib/growwer/api/catalogue_api.rb +8 -8
- data/lib/growwer/api/managed_services_api.rb +6 -6
- data/lib/growwer/api/saved_filters_api.rb +2 -2
- data/lib/growwer/api/seller_medias_api.rb +157 -4
- data/lib/growwer/api/seller_orders_api.rb +2 -2
- data/lib/growwer/api_client.rb +1 -1
- data/lib/growwer/models/create_seller_media_request.rb +447 -0
- data/lib/growwer/models/create_seller_media_request_post_offer.rb +273 -0
- data/lib/growwer/models/get_me200_response_catalogue.rb +1 -1
- data/lib/growwer/models/link_addition_order_briefing_request.rb +1 -1
- data/lib/growwer/models/project_catalogue_media_all_of_project.rb +34 -5
- data/lib/growwer/models/project_catalogue_media_all_of_project_ai_keywords.rb +211 -0
- data/lib/growwer/models/seller_media.rb +29 -1
- data/lib/growwer/models/seller_media_post_offer.rb +99 -1
- data/lib/growwer/models/seller_order_post_delivery.rb +1 -1
- data/lib/growwer/models/update_seller_media_request.rb +44 -1
- data/lib/growwer/models/update_seller_media_request_post_offer.rb +96 -12
- data/lib/growwer/version.rb +1 -1
- data/lib/growwer.rb +3 -0
- data/spec/models/create_seller_media_request_post_offer_spec.rb +62 -0
- data/spec/models/create_seller_media_request_spec.rb +100 -0
- data/spec/models/project_catalogue_media_all_of_project_ai_keywords_spec.rb +46 -0
- metadata +14 -2
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 1309cfbf9602a9d3eec50be2df7b71625640ace9eee267f4506eccc20cd69b5d
|
|
4
|
+
data.tar.gz: c2b891bb3052b535d15a85d03dbd1b41d6927b627c19c6a707999bdaa75ff93c
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 812c34054f7f31ebfaf2edb1a8bfeed634bb9739f08a80151f3a18b700a1481080f67d2f8feed84aec9f808293a16a1e1815fcae5edeff88aa6f90f17c3ec9f9
|
|
7
|
+
data.tar.gz: 7fb3fec207b58808e3fa5def44e2ddda9c64800577b1e75a10340ef93156a94e1c5bd2a207b734372b5ccfc39d8574842f7444075346d5b85818fca92c27e144
|
data/README.md
CHANGED
|
@@ -33,7 +33,7 @@ currency code and dates are ISO-8601.
|
|
|
33
33
|
This SDK is automatically generated by the [OpenAPI Generator](https://openapi-generator.tech) project:
|
|
34
34
|
|
|
35
35
|
- API version: 1
|
|
36
|
-
- Package version: 1.
|
|
36
|
+
- Package version: 1.1.1
|
|
37
37
|
- Generator version: 7.24.0
|
|
38
38
|
- Build package: org.openapitools.codegen.languages.RubyClientCodegen
|
|
39
39
|
For more information, please visit [https://growwer.com/contact/](https://growwer.com/contact/)
|
|
@@ -51,16 +51,16 @@ gem build growwer.gemspec
|
|
|
51
51
|
Then either install the gem locally:
|
|
52
52
|
|
|
53
53
|
```shell
|
|
54
|
-
gem install ./growwer-1.
|
|
54
|
+
gem install ./growwer-1.1.1.gem
|
|
55
55
|
```
|
|
56
56
|
|
|
57
|
-
(for development, run `gem install --dev ./growwer-1.
|
|
57
|
+
(for development, run `gem install --dev ./growwer-1.1.1.gem` to install the development dependencies)
|
|
58
58
|
|
|
59
59
|
or publish the gem to a gem hosting service, e.g. [RubyGems](https://rubygems.org/).
|
|
60
60
|
|
|
61
61
|
Finally add this to the Gemfile:
|
|
62
62
|
|
|
63
|
-
gem 'growwer', '~> 1.
|
|
63
|
+
gem 'growwer', '~> 1.1.1'
|
|
64
64
|
|
|
65
65
|
### Install from Git
|
|
66
66
|
|
|
@@ -158,9 +158,11 @@ Class | Method | HTTP request | Description
|
|
|
158
158
|
*Growwer::SavedFiltersApi* | [**list_saved_filters**](docs/SavedFiltersApi.md#list_saved_filters) | **GET** /api/v1/projects/{id}/saved-filters | List the saved filters of a project
|
|
159
159
|
*Growwer::SellerAccountApi* | [**put_seller_holiday**](docs/SellerAccountApi.md#put_seller_holiday) | **PUT** /api/v1/seller/holiday | Set your holiday
|
|
160
160
|
*Growwer::SellerMediasApi* | [**apply_seller_media_competitive_fees**](docs/SellerMediasApi.md#apply_seller_media_competitive_fees) | **POST** /api/v1/seller/medias/{id}/apply-competitive-fees | Set the competitive fees Growwer suggests
|
|
161
|
+
*Growwer::SellerMediasApi* | [**create_seller_media**](docs/SellerMediasApi.md#create_seller_media) | **POST** /api/v1/seller/medias | Register a media you sell on
|
|
162
|
+
*Growwer::SellerMediasApi* | [**delete_seller_media**](docs/SellerMediasApi.md#delete_seller_media) | **DELETE** /api/v1/seller/medias/{id} | Delete a media you sell on
|
|
161
163
|
*Growwer::SellerMediasApi* | [**get_seller_media**](docs/SellerMediasApi.md#get_seller_media) | **GET** /api/v1/seller/medias/{id} | Get a media you sell on
|
|
162
164
|
*Growwer::SellerMediasApi* | [**list_seller_medias**](docs/SellerMediasApi.md#list_seller_medias) | **GET** /api/v1/seller/medias | List the medias you sell on
|
|
163
|
-
*Growwer::SellerMediasApi* | [**update_seller_media**](docs/SellerMediasApi.md#update_seller_media) | **PATCH** /api/v1/seller/medias/{id} | Edit the
|
|
165
|
+
*Growwer::SellerMediasApi* | [**update_seller_media**](docs/SellerMediasApi.md#update_seller_media) | **PATCH** /api/v1/seller/medias/{id} | Edit the offer of a media you sell on
|
|
164
166
|
*Growwer::SellerOrdersApi* | [**accept_seller_order**](docs/SellerOrdersApi.md#accept_seller_order) | **POST** /api/v1/seller/orders/{id}/accept | Accept an order
|
|
165
167
|
*Growwer::SellerOrdersApi* | [**deliver_seller_order**](docs/SellerOrdersApi.md#deliver_seller_order) | **POST** /api/v1/seller/orders/{id}/deliver | Deliver an order
|
|
166
168
|
*Growwer::SellerOrdersApi* | [**deliver_seller_order_draft**](docs/SellerOrdersApi.md#deliver_seller_order_draft) | **POST** /api/v1/seller/orders/{id}/deliver-draft | Deliver a draft
|
|
@@ -195,6 +197,8 @@ Class | Method | HTTP request | Description
|
|
|
195
197
|
- [Growwer::CountSavedFilterMedias200Response](docs/CountSavedFilterMedias200Response.md)
|
|
196
198
|
- [Growwer::CreateProjectRequest](docs/CreateProjectRequest.md)
|
|
197
199
|
- [Growwer::CreateSavedFilterRequest](docs/CreateSavedFilterRequest.md)
|
|
200
|
+
- [Growwer::CreateSellerMediaRequest](docs/CreateSellerMediaRequest.md)
|
|
201
|
+
- [Growwer::CreateSellerMediaRequestPostOffer](docs/CreateSellerMediaRequestPostOffer.md)
|
|
198
202
|
- [Growwer::Error](docs/Error.md)
|
|
199
203
|
- [Growwer::GetBuyerWallet200Response](docs/GetBuyerWallet200Response.md)
|
|
200
204
|
- [Growwer::GetMe200Response](docs/GetMe200Response.md)
|
|
@@ -258,6 +262,7 @@ Class | Method | HTTP request | Description
|
|
|
258
262
|
- [Growwer::Project](docs/Project.md)
|
|
259
263
|
- [Growwer::ProjectCatalogueMedia](docs/ProjectCatalogueMedia.md)
|
|
260
264
|
- [Growwer::ProjectCatalogueMediaAllOfProject](docs/ProjectCatalogueMediaAllOfProject.md)
|
|
265
|
+
- [Growwer::ProjectCatalogueMediaAllOfProjectAiKeywords](docs/ProjectCatalogueMediaAllOfProjectAiKeywords.md)
|
|
261
266
|
- [Growwer::PutSellerHoliday200Response](docs/PutSellerHoliday200Response.md)
|
|
262
267
|
- [Growwer::PutSellerHolidayRequest](docs/PutSellerHolidayRequest.md)
|
|
263
268
|
- [Growwer::RequestMedias201Response](docs/RequestMedias201Response.md)
|
data/docs/CatalogueApi.md
CHANGED
|
@@ -233,7 +233,7 @@ end
|
|
|
233
233
|
|
|
234
234
|
List flash offers
|
|
235
235
|
|
|
236
|
-
The medias on a flash offer, a time-limited discount, in the catalogue of one of your projects. It is GET /projects/{id}/medias with `flashOffer=true`, and takes the same parameters except `flashOffer` and `savedFilterId`. The catalogue access and the daily
|
|
236
|
+
The medias on a flash offer, a time-limited discount, in the catalogue of one of your projects. It is GET /projects/{id}/medias with `flashOffer=true`, and takes the same parameters except `flashOffer` and `savedFilterId`. The catalogue access and the daily limit of that operation apply: each new media costs one unit, a page that holds no new media, an empty one included, costs one, and repeating a request already answered the same day is free while the media lists, topics and language of the project stay as they were.
|
|
237
237
|
|
|
238
238
|
### Examples
|
|
239
239
|
|
|
@@ -281,7 +281,7 @@ opts = {
|
|
|
281
281
|
discarded: true, # Boolean | `true`: only the medias you discarded for the project; `false`: leave them out.
|
|
282
282
|
new: true, # Boolean | Medias Growwer matched with the project recently. Only `true` applies it; omit it otherwise.
|
|
283
283
|
ranks_goal_keyword: 'ranks_goal_keyword_example', # String | A comma-separated list of keyword origins: medias that rank for a keyword of the project from any of them. `user`: your keywords; `publicGenerated`: keywords Growwer found for the project.
|
|
284
|
-
ranks_ai_keyword: 'ranks_ai_keyword_example', # String | A comma-separated list of AI answer engines: medias
|
|
284
|
+
ranks_ai_keyword: 'ranks_ai_keyword_example', # String | A comma-separated list of AI answer engines: medias the web lists an AI keyword of the project for, from any of them. `googleAiOverview`, `chatgpt`, `googleAiMode`.
|
|
285
285
|
limit: 56, # Integer | Medias per page, 1 to 100.
|
|
286
286
|
offset: 56 # Integer | Medias to skip, at most 99900.
|
|
287
287
|
}
|
|
@@ -350,7 +350,7 @@ end
|
|
|
350
350
|
| **discarded** | **Boolean** | `true`: only the medias you discarded for the project; `false`: leave them out. | [optional] |
|
|
351
351
|
| **new** | **Boolean** | Medias Growwer matched with the project recently. Only `true` applies it; omit it otherwise. | [optional] |
|
|
352
352
|
| **ranks_goal_keyword** | **String** | A comma-separated list of keyword origins: medias that rank for a keyword of the project from any of them. `user`: your keywords; `publicGenerated`: keywords Growwer found for the project. | [optional] |
|
|
353
|
-
| **ranks_ai_keyword** | **String** | A comma-separated list of AI answer engines: medias
|
|
353
|
+
| **ranks_ai_keyword** | **String** | A comma-separated list of AI answer engines: medias the web lists an AI keyword of the project for, from any of them. `googleAiOverview`, `chatgpt`, `googleAiMode`. | [optional] |
|
|
354
354
|
| **limit** | **Integer** | Medias per page, 1 to 100. | [optional][default to 20] |
|
|
355
355
|
| **offset** | **Integer** | Medias to skip, at most 99900. | [optional][default to 0] |
|
|
356
356
|
|
|
@@ -447,7 +447,7 @@ end
|
|
|
447
447
|
|
|
448
448
|
Search the catalogue for a project
|
|
449
449
|
|
|
450
|
-
The medias the catalogue offers for one of your projects, as the web lists them, with each media's state in the project. Filter with the parameters below, which all combine, or apply one of your saved filters with `savedFilterId` alone. Each account can see a limited number of distinct medias per day (UTC) across the catalogue operations: the full daily cap for accounts with recent completed orders, as buyer or as seller, and a smaller trial quota for other accounts, which rises to the full cap after a completed order (see `catalogue.eligible`, `catalogue.dailyCap` and `catalogue.remainingToday` on GET /me).
|
|
450
|
+
The medias the catalogue offers for one of your projects, as the web lists them, with each media's state in the project. Filter with the parameters below, which all combine, or apply one of your saved filters with `savedFilterId` alone. Each account can see a limited number of distinct medias per day (UTC) across the catalogue operations: the full daily cap for accounts with recent completed orders, as buyer or as seller, and a smaller trial quota for other accounts, which rises to the full cap after a completed order (see `catalogue.eligible`, `catalogue.dailyCap` and `catalogue.remainingToday` on GET /me). Each new media of a page costs one unit of that limit, and a page that holds no new media, an empty one included, costs one unit, so a `total` costs at least one; repeating a request already answered the same day is free, and so are medias seen again that day. A change of the media lists of the project (a media request, a favourite, a discard), its topics or its language makes the same request a new one.
|
|
451
451
|
|
|
452
452
|
### Examples
|
|
453
453
|
|
|
@@ -497,7 +497,7 @@ opts = {
|
|
|
497
497
|
discarded: true, # Boolean | `true`: only the medias you discarded for the project; `false`: leave them out.
|
|
498
498
|
new: true, # Boolean | Medias Growwer matched with the project recently. Only `true` applies it; omit it otherwise.
|
|
499
499
|
ranks_goal_keyword: 'ranks_goal_keyword_example', # String | A comma-separated list of keyword origins: medias that rank for a keyword of the project from any of them. `user`: your keywords; `publicGenerated`: keywords Growwer found for the project.
|
|
500
|
-
ranks_ai_keyword: 'ranks_ai_keyword_example', # String | A comma-separated list of AI answer engines: medias
|
|
500
|
+
ranks_ai_keyword: 'ranks_ai_keyword_example', # String | A comma-separated list of AI answer engines: medias the web lists an AI keyword of the project for, from any of them. `googleAiOverview`, `chatgpt`, `googleAiMode`.
|
|
501
501
|
limit: 56, # Integer | Medias per page, 1 to 100.
|
|
502
502
|
offset: 56 # Integer | Medias to skip, at most 99900.
|
|
503
503
|
}
|
|
@@ -568,7 +568,7 @@ end
|
|
|
568
568
|
| **discarded** | **Boolean** | `true`: only the medias you discarded for the project; `false`: leave them out. | [optional] |
|
|
569
569
|
| **new** | **Boolean** | Medias Growwer matched with the project recently. Only `true` applies it; omit it otherwise. | [optional] |
|
|
570
570
|
| **ranks_goal_keyword** | **String** | A comma-separated list of keyword origins: medias that rank for a keyword of the project from any of them. `user`: your keywords; `publicGenerated`: keywords Growwer found for the project. | [optional] |
|
|
571
|
-
| **ranks_ai_keyword** | **String** | A comma-separated list of AI answer engines: medias
|
|
571
|
+
| **ranks_ai_keyword** | **String** | A comma-separated list of AI answer engines: medias the web lists an AI keyword of the project for, from any of them. `googleAiOverview`, `chatgpt`, `googleAiMode`. | [optional] |
|
|
572
572
|
| **limit** | **Integer** | Medias per page, 1 to 100. | [optional][default to 20] |
|
|
573
573
|
| **offset** | **Integer** | Medias to skip, at most 99900. | [optional][default to 0] |
|
|
574
574
|
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
# Growwer::CreateSellerMediaRequest
|
|
2
|
+
|
|
3
|
+
## Properties
|
|
4
|
+
|
|
5
|
+
| Name | Type | Description | Notes |
|
|
6
|
+
| ---- | ---- | ----------- | ----- |
|
|
7
|
+
| **root_url** | **String** | | |
|
|
8
|
+
| **typology** | **String** | | |
|
|
9
|
+
| **country** | **String** | A country code from GET /vocabulary. | |
|
|
10
|
+
| **language** | **String** | A language code from GET /vocabulary. | |
|
|
11
|
+
| **topics** | **Array<Integer>** | Topic ids from GET /vocabulary. | |
|
|
12
|
+
| **banned_topics** | **Array<Integer>** | The topic ids from GET /vocabulary the media refuses. | [optional] |
|
|
13
|
+
| **post_offer** | [**CreateSellerMediaRequestPostOffer**](CreateSellerMediaRequestPostOffer.md) | | |
|
|
14
|
+
| **link_addition_offer** | [**UpdateSellerMediaRequestLinkAdditionOffer**](UpdateSellerMediaRequestLinkAdditionOffer.md) | | [optional] |
|
|
15
|
+
| **extra_services** | [**Array<UpdateSellerMediaRequestExtraServicesInner>**](UpdateSellerMediaRequestExtraServicesInner.md) | | [optional] |
|
|
16
|
+
| **accept_media_publishing_terms** | **Boolean** | Must be true: you accept the media publishing terms. | |
|
|
17
|
+
| **declare_media_ownership** | **Boolean** | Must be true: you own or manage this media. | |
|
|
18
|
+
|
|
19
|
+
## Example
|
|
20
|
+
|
|
21
|
+
```ruby
|
|
22
|
+
require 'growwer'
|
|
23
|
+
|
|
24
|
+
instance = Growwer::CreateSellerMediaRequest.new(
|
|
25
|
+
root_url: https://www.example.com,
|
|
26
|
+
typology: null,
|
|
27
|
+
country: ES,
|
|
28
|
+
language: es,
|
|
29
|
+
topics: null,
|
|
30
|
+
banned_topics: null,
|
|
31
|
+
post_offer: null,
|
|
32
|
+
link_addition_offer: null,
|
|
33
|
+
extra_services: null,
|
|
34
|
+
accept_media_publishing_terms: null,
|
|
35
|
+
declare_media_ownership: null
|
|
36
|
+
)
|
|
37
|
+
```
|
|
38
|
+
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
# Growwer::CreateSellerMediaRequestPostOffer
|
|
2
|
+
|
|
3
|
+
## Properties
|
|
4
|
+
|
|
5
|
+
| Name | Type | Description | Notes |
|
|
6
|
+
| ---- | ---- | ----------- | ----- |
|
|
7
|
+
| **pricing_options** | [**Array<UpdateSellerMediaRequestPostOfferPricingOptionsInner>**](UpdateSellerMediaRequestPostOfferPricingOptionsInner.md) | | |
|
|
8
|
+
| **maximum_links** | **Integer** | | |
|
|
9
|
+
| **advertising_labelling_policy** | **String** | | [optional] |
|
|
10
|
+
| **promoted_social_networks** | **Array<String>** | | [optional] |
|
|
11
|
+
|
|
12
|
+
## Example
|
|
13
|
+
|
|
14
|
+
```ruby
|
|
15
|
+
require 'growwer'
|
|
16
|
+
|
|
17
|
+
instance = Growwer::CreateSellerMediaRequestPostOffer.new(
|
|
18
|
+
pricing_options: null,
|
|
19
|
+
maximum_links: null,
|
|
20
|
+
advertising_labelling_policy: null,
|
|
21
|
+
promoted_social_networks: null
|
|
22
|
+
)
|
|
23
|
+
```
|
|
24
|
+
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
| ---- | ---- | ----------- | ----- |
|
|
7
7
|
| **eligible** | **Boolean** | Whether you have the full daily cap of the catalogue operations (tag Catalogue: searching a project's medias, flash offers and media details). It is open to accounts with recent completed orders, as buyer or as seller; until then the catalogue answers within a smaller daily trial quota, which rises to the full cap after a completed order. A media you have ordered is always readable with GET /medias/{id} and counts against neither. | |
|
|
8
8
|
| **daily_cap** | **Integer** | How many distinct medias the catalogue operations show you per UTC day: the full cap when `eligible` is true, the trial quota otherwise. 0 means the catalogue answers 403 `catalogue_requires_recent_order` until you have a recent completed order. | |
|
|
9
|
-
| **remaining_today** | **Integer** | How many
|
|
9
|
+
| **remaining_today** | **Integer** | How many units of `dailyCap` still fit today (UTC): each new distinct media costs one, and a catalogue response that holds no new media, an empty one or a saved filter count included, costs one unless the same request was answered today and the media lists, topics and language of its project have not changed since. Medias you have already seen today, and requests already answered today, are free. Null when the count cannot be read right now; the catalogue operations then answer 503 until it can. | |
|
|
10
10
|
|
|
11
11
|
## Example
|
|
12
12
|
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
|
|
5
5
|
| Name | Type | Description | Notes |
|
|
6
6
|
| ---- | ---- | ----------- | ----- |
|
|
7
|
-
| **linking_from** | **String** | The URL of an existing article on the media's domain that the link goes into
|
|
7
|
+
| **linking_from** | **String** | The URL of an existing article on the media's domain that the link goes into, without `<` or `>`. | |
|
|
8
8
|
| **link** | [**OrderLinkRequest**](OrderLinkRequest.md) | | |
|
|
9
9
|
| **additional_info** | **String** | | [optional] |
|
|
10
10
|
|
data/docs/ManagedServicesApi.md
CHANGED
|
@@ -160,7 +160,7 @@ end
|
|
|
160
160
|
|
|
161
161
|
Download the summary of a campaign's proposals
|
|
162
162
|
|
|
163
|
-
The PDF the campaign page offers: the proposals awaiting your review, accepted or being published, newest first, in your language. With `extended=true` it also shows each proposal's price, the price it was proposed at (`proposedPrice`).
|
|
163
|
+
The PDF the campaign page offers: the proposals awaiting your review, accepted or being published, newest first, in your language. With `extended=true` it also shows each proposal's price, the price it was proposed at (`proposedPrice`). One summary of yours is rendered at a time: a request while another is being rendered gets 429 `proposals_summary_in_progress`, to retry after the `Retry-After` header.
|
|
164
164
|
|
|
165
165
|
### Examples
|
|
166
166
|
|
|
@@ -383,7 +383,7 @@ end
|
|
|
383
383
|
|
|
384
384
|
Request a new campaign
|
|
385
385
|
|
|
386
|
-
Asks your account manager for a new campaign, as the managed service page does: the team emails you to agree on it. For accounts with a managed service (GET /me `managedService.active`); without one, POST /managed-service/info-requests asks about the service.
|
|
386
|
+
Asks your account manager for a new campaign, as the managed service page does: the team emails you to agree on it. For accounts with a managed service (GET /me `managedService.active`); without one, POST /managed-service/info-requests asks about the service. The API admits a limited number of such requests per user and UTC day (5 by default; the refusal message states the current limit). Past it, it answers 429 `managed_service_request_limit_reached`, with `Retry-After` the time to the next UTC midnight. A request that is refused (4xx) does not count; one that fails on the server (5xx) does, as it may have been sent.
|
|
387
387
|
|
|
388
388
|
### Examples
|
|
389
389
|
|
|
@@ -454,7 +454,7 @@ end
|
|
|
454
454
|
|
|
455
455
|
Ask about the managed service
|
|
456
456
|
|
|
457
|
-
Asks the team about the managed service for your website, as the managed service landing page does: the team contacts you. For accounts without a managed service (GET /me `managedService.active`); with one, POST /managed-service/campaign-requests requests a new campaign.
|
|
457
|
+
Asks the team about the managed service for your website, as the managed service landing page does: the team contacts you. For accounts without a managed service (GET /me `managedService.active`); with one, POST /managed-service/campaign-requests requests a new campaign. The API admits a limited number of such requests per user and UTC day (5 by default; the refusal message states the current limit). Past it, it answers 429 `managed_service_request_limit_reached`, with `Retry-After` the time to the next UTC midnight. A request that is refused (4xx) does not count; one that fails on the server (5xx) does, as it may have been sent.
|
|
458
458
|
|
|
459
459
|
### Examples
|
|
460
460
|
|
|
@@ -10,6 +10,7 @@
|
|
|
10
10
|
| **recommended** | **Boolean** | Growwer recommends the media for the project. | |
|
|
11
11
|
| **bought** | **Boolean** | You have ordered on the media for the project. | |
|
|
12
12
|
| **new** | **Boolean** | Growwer matched the media with the project recently. | |
|
|
13
|
+
| **ai_keywords** | [**Array<ProjectCatalogueMediaAllOfProjectAiKeywords>**](ProjectCatalogueMediaAllOfProjectAiKeywords.md) | The AI keywords the web lists for the media in this project, one entry per keyword of each stored source, empty when there are none. Keywords an AI answer gave without referencing any domain may be listed for every media of the project, so an entry does not mean that the engine cited the media. Entries keep their order within an engine, and a keyword listed by two engines appears once for each; the order of the engines is not promised. | |
|
|
13
14
|
|
|
14
15
|
## Example
|
|
15
16
|
|
|
@@ -22,7 +23,8 @@ instance = Growwer::ProjectCatalogueMediaAllOfProject.new(
|
|
|
22
23
|
requested: null,
|
|
23
24
|
recommended: null,
|
|
24
25
|
bought: null,
|
|
25
|
-
new: null
|
|
26
|
+
new: null,
|
|
27
|
+
ai_keywords: null
|
|
26
28
|
)
|
|
27
29
|
```
|
|
28
30
|
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
# Growwer::ProjectCatalogueMediaAllOfProjectAiKeywords
|
|
2
|
+
|
|
3
|
+
## Properties
|
|
4
|
+
|
|
5
|
+
| Name | Type | Description | Notes |
|
|
6
|
+
| ---- | ---- | ----------- | ----- |
|
|
7
|
+
| **keyword** | **String** | | |
|
|
8
|
+
| **source** | **String** | The AI engine that gave the keyword, as the `ranksAiKeyword` filter names it, or null for an engine it does not name. It is never where the media comes from. | |
|
|
9
|
+
|
|
10
|
+
## Example
|
|
11
|
+
|
|
12
|
+
```ruby
|
|
13
|
+
require 'growwer'
|
|
14
|
+
|
|
15
|
+
instance = Growwer::ProjectCatalogueMediaAllOfProjectAiKeywords.new(
|
|
16
|
+
keyword: null,
|
|
17
|
+
source: null
|
|
18
|
+
)
|
|
19
|
+
```
|
|
20
|
+
|
data/docs/SavedFiltersApi.md
CHANGED
|
@@ -16,7 +16,7 @@ All URIs are relative to *https://tool.growwer.com*
|
|
|
16
16
|
|
|
17
17
|
Count the medias of a saved filter
|
|
18
18
|
|
|
19
|
-
How many medias of the project's catalogue one of your saved filters matches: the `total` of GET /projects/{id}/medias with its `savedFilterId`. The number is cached for up to 24 hours, and it can differ from the count the web shows, which is not limited to the project's catalogue. A filter saved on the web that uses a filter the API does not support is refused with 422 `saved_filter_unsupported`.
|
|
19
|
+
How many medias of the project's catalogue one of your saved filters matches: the `total` of GET /projects/{id}/medias with its `savedFilterId`. The number is cached for up to 24 hours, and it can differ from the count the web shows, which is not limited to the project's catalogue. A filter saved on the web that uses a filter the API does not support is refused with 422 `saved_filter_unsupported`. The catalogue access and the daily limit of the catalogue apply: a count costs one unit of that limit the first time a filter is counted in a UTC day, and counting the same filter again that day is free.
|
|
20
20
|
|
|
21
21
|
### Examples
|
|
22
22
|
|
data/docs/SellerMedia.md
CHANGED
|
@@ -7,6 +7,7 @@
|
|
|
7
7
|
| **id** | **String** | | |
|
|
8
8
|
| **domain** | **String** | | |
|
|
9
9
|
| **url** | **String** | The media's root URL. | |
|
|
10
|
+
| **typology** | **String** | | |
|
|
10
11
|
| **state** | **String** | | |
|
|
11
12
|
| **deactivation_strikes** | **Integer** | How many times the media was deactivated for not publishing. | |
|
|
12
13
|
| **country** | **String** | A country code, as in GET /vocabulary, or null for none. | |
|
|
@@ -33,6 +34,7 @@ instance = Growwer::SellerMedia.new(
|
|
|
33
34
|
id: null,
|
|
34
35
|
domain: example.com,
|
|
35
36
|
url: null,
|
|
37
|
+
typology: null,
|
|
36
38
|
state: null,
|
|
37
39
|
deactivation_strikes: null,
|
|
38
40
|
country: null,
|
|
@@ -5,7 +5,10 @@
|
|
|
5
5
|
| Name | Type | Description | Notes |
|
|
6
6
|
| ---- | ---- | ----------- | ----- |
|
|
7
7
|
| **pricing_options** | [**Array<SellerMediaPostOfferPricingOptionsInner>**](SellerMediaPostOfferPricingOptionsInner.md) | One entry per link type you offer. | |
|
|
8
|
-
| **
|
|
8
|
+
| **maximum_links** | **Integer** | How many links a sponsored post may hold, 1 to 4. | |
|
|
9
|
+
| **advertising_labelling_policy** | **String** | Whether sponsored posts are labelled as advertising. | |
|
|
10
|
+
| **promoted_social_networks** | **Array<String>** | The social networks sponsored posts are promoted on. | |
|
|
11
|
+
| **extra_services** | [**Array<UpdateSellerMediaRequestExtraServicesInner>**](UpdateSellerMediaRequestExtraServicesInner.md) | Read here, but PATCH /seller/medias/{id} and POST /seller/medias take it at the top level of the body. | |
|
|
9
12
|
|
|
10
13
|
## Example
|
|
11
14
|
|
|
@@ -14,6 +17,9 @@ require 'growwer'
|
|
|
14
17
|
|
|
15
18
|
instance = Growwer::SellerMediaPostOffer.new(
|
|
16
19
|
pricing_options: null,
|
|
20
|
+
maximum_links: null,
|
|
21
|
+
advertising_labelling_policy: null,
|
|
22
|
+
promoted_social_networks: null,
|
|
17
23
|
extra_services: null
|
|
18
24
|
)
|
|
19
25
|
```
|
data/docs/SellerMediasApi.md
CHANGED
|
@@ -5,9 +5,11 @@ All URIs are relative to *https://tool.growwer.com*
|
|
|
5
5
|
| Method | HTTP request | Description |
|
|
6
6
|
| ------ | ------------ | ----------- |
|
|
7
7
|
| [**apply_seller_media_competitive_fees**](SellerMediasApi.md#apply_seller_media_competitive_fees) | **POST** /api/v1/seller/medias/{id}/apply-competitive-fees | Set the competitive fees Growwer suggests |
|
|
8
|
+
| [**create_seller_media**](SellerMediasApi.md#create_seller_media) | **POST** /api/v1/seller/medias | Register a media you sell on |
|
|
9
|
+
| [**delete_seller_media**](SellerMediasApi.md#delete_seller_media) | **DELETE** /api/v1/seller/medias/{id} | Delete a media you sell on |
|
|
8
10
|
| [**get_seller_media**](SellerMediasApi.md#get_seller_media) | **GET** /api/v1/seller/medias/{id} | Get a media you sell on |
|
|
9
11
|
| [**list_seller_medias**](SellerMediasApi.md#list_seller_medias) | **GET** /api/v1/seller/medias | List the medias you sell on |
|
|
10
|
-
| [**update_seller_media**](SellerMediasApi.md#update_seller_media) | **PATCH** /api/v1/seller/medias/{id} | Edit the
|
|
12
|
+
| [**update_seller_media**](SellerMediasApi.md#update_seller_media) | **PATCH** /api/v1/seller/medias/{id} | Edit the offer of a media you sell on |
|
|
11
13
|
|
|
12
14
|
|
|
13
15
|
## apply_seller_media_competitive_fees
|
|
@@ -81,6 +83,147 @@ end
|
|
|
81
83
|
- **Accept**: application/json
|
|
82
84
|
|
|
83
85
|
|
|
86
|
+
## create_seller_media
|
|
87
|
+
|
|
88
|
+
> <SellerMedia> create_seller_media(idempotency_key, create_seller_media_request)
|
|
89
|
+
|
|
90
|
+
Register a media you sell on
|
|
91
|
+
|
|
92
|
+
Registers one of your medias, as the media create page does. The media is created with `state: pending_review` and Growwer reviews it in the background, as for a media registered on the web; GET /seller/medias/{id} shows its state. - `rootUrl` is the media's root URL; `typology` is `blog` or `press`. - `country` and `language` take the codes GET /vocabulary publishes; `topics` and `bannedTopics` take its topic ids, at most 100 each, and no topic may be both; `bannedTopics` left out bans none. - `postOffer.pricingOptions` lists every link type you offer for sponsored posts, at least one. Each option needs at least one fee, and every option must offer the same sides (written by you, written by the buyer or Growwer), as the page requires. Each fee is at least 1 EUR, sent in cents. - `postOffer.maximumLinks` is how many links a sponsored post may hold, 1 to 4; `postOffer.advertisingLabellingPolicy` whether posts are labelled as advertising, `never` when left out; `postOffer.promotedSocialNetworks` the social networks posts are promoted on, none when left out. - `linkAdditionOffer.pricingOptions` lists the link types you offer for adding a link to an existing article; left out, `null` or an empty list offers none. - `extraServices` lists the extra services you offer, none when left out. It is sent at the top level, although GET /seller/medias/{id} reads it inside `postOffer`. - `acceptMediaPublishingTerms` and `declareMediaOwnership` must be `true`: they accept the media publishing terms and declare that you own or manage the media, as the page's checkboxes do, and are recorded as your consents for the media. A media registered already, by you or by anyone else, is refused with 409 `media_already_registered`, and each such refusal counts toward a daily limit of refusals (429 `media_duplicate_limit_reached` once reached); medias not registered yet are never limited by it. To register many medias, call this operation once per media, each call with its own `Idempotency-Key` and its own answer (201, 409, 422 or 429); there is no batch operation. The request limits apply to the loop as to any calls (600 requests per minute per user and 300 per key), and each 409 `media_already_registered` counts toward the daily limit of refusals as it does for a single call. Retry a call that got no answer with its same `Idempotency-Key`, as for any write.
|
|
93
|
+
|
|
94
|
+
### Examples
|
|
95
|
+
|
|
96
|
+
```ruby
|
|
97
|
+
require 'time'
|
|
98
|
+
require 'growwer'
|
|
99
|
+
# setup authorization
|
|
100
|
+
Growwer.configure do |config|
|
|
101
|
+
# Configure Bearer authorization: apiKey
|
|
102
|
+
config.access_token = 'YOUR_BEARER_TOKEN'
|
|
103
|
+
end
|
|
104
|
+
|
|
105
|
+
api_instance = Growwer::SellerMediasApi.new
|
|
106
|
+
idempotency_key = 'idempotency_key_example' # String | A new key for each write, reused only to retry that same write. 1 to 255 printable ASCII characters without spaces (`!` to `~`); any other value answers 400 `invalid_idempotency_key`.
|
|
107
|
+
create_seller_media_request = Growwer::CreateSellerMediaRequest.new({root_url: 'https://www.example.com', typology: 'blog', country: 'ES', language: 'es', topics: [37], post_offer: Growwer::CreateSellerMediaRequestPostOffer.new({pricing_options: [Growwer::UpdateSellerMediaRequestPostOfferPricingOptionsInner.new({link_type: 'dofollow'})], maximum_links: 37}), accept_media_publishing_terms: false, declare_media_ownership: false}) # CreateSellerMediaRequest |
|
|
108
|
+
|
|
109
|
+
begin
|
|
110
|
+
# Register a media you sell on
|
|
111
|
+
result = api_instance.create_seller_media(idempotency_key, create_seller_media_request)
|
|
112
|
+
p result
|
|
113
|
+
rescue Growwer::ApiError => e
|
|
114
|
+
puts "Error when calling SellerMediasApi->create_seller_media: #{e}"
|
|
115
|
+
end
|
|
116
|
+
```
|
|
117
|
+
|
|
118
|
+
#### Using the create_seller_media_with_http_info variant
|
|
119
|
+
|
|
120
|
+
This returns an Array which contains the response data, status code and headers.
|
|
121
|
+
|
|
122
|
+
> <Array(<SellerMedia>, Integer, Hash)> create_seller_media_with_http_info(idempotency_key, create_seller_media_request)
|
|
123
|
+
|
|
124
|
+
```ruby
|
|
125
|
+
begin
|
|
126
|
+
# Register a media you sell on
|
|
127
|
+
data, status_code, headers = api_instance.create_seller_media_with_http_info(idempotency_key, create_seller_media_request)
|
|
128
|
+
p status_code # => 2xx
|
|
129
|
+
p headers # => { ... }
|
|
130
|
+
p data # => <SellerMedia>
|
|
131
|
+
rescue Growwer::ApiError => e
|
|
132
|
+
puts "Error when calling SellerMediasApi->create_seller_media_with_http_info: #{e}"
|
|
133
|
+
end
|
|
134
|
+
```
|
|
135
|
+
|
|
136
|
+
### Parameters
|
|
137
|
+
|
|
138
|
+
| Name | Type | Description | Notes |
|
|
139
|
+
| ---- | ---- | ----------- | ----- |
|
|
140
|
+
| **idempotency_key** | **String** | A new key for each write, reused only to retry that same write. 1 to 255 printable ASCII characters without spaces (`!` to `~`); any other value answers 400 `invalid_idempotency_key`. | |
|
|
141
|
+
| **create_seller_media_request** | [**CreateSellerMediaRequest**](CreateSellerMediaRequest.md) | | |
|
|
142
|
+
|
|
143
|
+
### Return type
|
|
144
|
+
|
|
145
|
+
[**SellerMedia**](SellerMedia.md)
|
|
146
|
+
|
|
147
|
+
### Authorization
|
|
148
|
+
|
|
149
|
+
[apiKey](../README.md#apiKey)
|
|
150
|
+
|
|
151
|
+
### HTTP request headers
|
|
152
|
+
|
|
153
|
+
- **Content-Type**: application/json
|
|
154
|
+
- **Accept**: application/json
|
|
155
|
+
|
|
156
|
+
|
|
157
|
+
## delete_seller_media
|
|
158
|
+
|
|
159
|
+
> delete_seller_media(id, idempotency_key)
|
|
160
|
+
|
|
161
|
+
Delete a media you sell on
|
|
162
|
+
|
|
163
|
+
Deletes one of your medias, in any state, as the media delete button does. The media must have no order in progress: close or reject its orders first. The API never cancels an order for you, and an order placed while the delete runs is refused, never cancelled. What goes with the media, as on the web: - A running flash offer ends with it, and its managed-service proposals are deleted. - Its finished orders stay, with the media's URL; they read `media.id` null. - Buyers' favourites and discards of the domain stay, as they are kept by domain. - The catalogue search drops the media shortly after the 204, as the search index updates asynchronously. Repeating the call with the same `Idempotency-Key` answers the same 204 with `Idempotent-Replayed: true`; a new key after the delete answers 404.
|
|
164
|
+
|
|
165
|
+
### Examples
|
|
166
|
+
|
|
167
|
+
```ruby
|
|
168
|
+
require 'time'
|
|
169
|
+
require 'growwer'
|
|
170
|
+
# setup authorization
|
|
171
|
+
Growwer.configure do |config|
|
|
172
|
+
# Configure Bearer authorization: apiKey
|
|
173
|
+
config.access_token = 'YOUR_BEARER_TOKEN'
|
|
174
|
+
end
|
|
175
|
+
|
|
176
|
+
api_instance = Growwer::SellerMediasApi.new
|
|
177
|
+
id = '38400000-8cf0-11bd-b23e-10b96e4ef00d' # String |
|
|
178
|
+
idempotency_key = 'idempotency_key_example' # String | A new key for each write, reused only to retry that same write. 1 to 255 printable ASCII characters without spaces (`!` to `~`); any other value answers 400 `invalid_idempotency_key`.
|
|
179
|
+
|
|
180
|
+
begin
|
|
181
|
+
# Delete a media you sell on
|
|
182
|
+
api_instance.delete_seller_media(id, idempotency_key)
|
|
183
|
+
rescue Growwer::ApiError => e
|
|
184
|
+
puts "Error when calling SellerMediasApi->delete_seller_media: #{e}"
|
|
185
|
+
end
|
|
186
|
+
```
|
|
187
|
+
|
|
188
|
+
#### Using the delete_seller_media_with_http_info variant
|
|
189
|
+
|
|
190
|
+
This returns an Array which contains the response data (`nil` in this case), status code and headers.
|
|
191
|
+
|
|
192
|
+
> <Array(nil, Integer, Hash)> delete_seller_media_with_http_info(id, idempotency_key)
|
|
193
|
+
|
|
194
|
+
```ruby
|
|
195
|
+
begin
|
|
196
|
+
# Delete a media you sell on
|
|
197
|
+
data, status_code, headers = api_instance.delete_seller_media_with_http_info(id, idempotency_key)
|
|
198
|
+
p status_code # => 2xx
|
|
199
|
+
p headers # => { ... }
|
|
200
|
+
p data # => nil
|
|
201
|
+
rescue Growwer::ApiError => e
|
|
202
|
+
puts "Error when calling SellerMediasApi->delete_seller_media_with_http_info: #{e}"
|
|
203
|
+
end
|
|
204
|
+
```
|
|
205
|
+
|
|
206
|
+
### Parameters
|
|
207
|
+
|
|
208
|
+
| Name | Type | Description | Notes |
|
|
209
|
+
| ---- | ---- | ----------- | ----- |
|
|
210
|
+
| **id** | **String** | | |
|
|
211
|
+
| **idempotency_key** | **String** | A new key for each write, reused only to retry that same write. 1 to 255 printable ASCII characters without spaces (`!` to `~`); any other value answers 400 `invalid_idempotency_key`. | |
|
|
212
|
+
|
|
213
|
+
### Return type
|
|
214
|
+
|
|
215
|
+
nil (empty response body)
|
|
216
|
+
|
|
217
|
+
### Authorization
|
|
218
|
+
|
|
219
|
+
[apiKey](../README.md#apiKey)
|
|
220
|
+
|
|
221
|
+
### HTTP request headers
|
|
222
|
+
|
|
223
|
+
- **Content-Type**: Not defined
|
|
224
|
+
- **Accept**: application/json
|
|
225
|
+
|
|
226
|
+
|
|
84
227
|
## get_seller_media
|
|
85
228
|
|
|
86
229
|
> <SellerMedia> get_seller_media(id)
|
|
@@ -231,9 +374,9 @@ end
|
|
|
231
374
|
|
|
232
375
|
> <SellerMedia> update_seller_media(id, idempotency_key, update_seller_media_request)
|
|
233
376
|
|
|
234
|
-
Edit the
|
|
377
|
+
Edit the offer of a media you sell on
|
|
235
378
|
|
|
236
|
-
Sets the fees of one of your medias, as the media edit page saves them. Send only the
|
|
379
|
+
Sets the fees, extra services, typology and post offer characteristics of one of your medias, as the media edit page saves them. Send only the fields you change: a field you send replaces that field wholly, a field you leave out stays as it is, inside `postOffer` too (sending only `postOffer.maximumLinks` keeps your fees). - `typology` is `blog` or `press`. - `postOffer.pricingOptions` lists every link type you offer for sponsored posts, at least one. A link type you leave out is no longer offered. Each option needs at least one fee, and every option must offer the same sides (written by you, written by the buyer or Growwer), as the page requires. Each fee is at least 1 EUR. - `postOffer.maximumLinks` is how many links a sponsored post may hold, 1 to 4; `postOffer.advertisingLabellingPolicy` whether posts are labelled as advertising (`always` or `never`); `postOffer.promotedSocialNetworks` the full list of social networks posts are promoted on, each once (an empty list for none). - `linkAdditionOffer.pricingOptions` lists the link types you offer for adding a link to an existing article; `null` or an empty list stops offering link additions. - `extraServices` is the full list of extra services you offer; an empty list removes them all. It is sent at the top level, although GET /seller/medias/{id} reads it inside `postOffer`. The fees are your base fees, the ones GET /seller/medias/{id} returns: while a flash offer runs, its discount keeps applying on top of them, and `currentCost` shows the result. `currentCost` may be sent back as read and is ignored. Country, language, topics and comments are not edited here. As on the page, a change of the post offer's price may cancel the managed-service proposals accepted for the media whose price it changes, and raising the price above the best competitor's tells Growwer's support team. A restricted seller account may edit its offer.
|
|
237
380
|
|
|
238
381
|
### Examples
|
|
239
382
|
|
|
@@ -252,7 +395,7 @@ idempotency_key = 'idempotency_key_example' # String | A new key for each write,
|
|
|
252
395
|
update_seller_media_request = Growwer::UpdateSellerMediaRequest.new # UpdateSellerMediaRequest |
|
|
253
396
|
|
|
254
397
|
begin
|
|
255
|
-
# Edit the
|
|
398
|
+
# Edit the offer of a media you sell on
|
|
256
399
|
result = api_instance.update_seller_media(id, idempotency_key, update_seller_media_request)
|
|
257
400
|
p result
|
|
258
401
|
rescue Growwer::ApiError => e
|
|
@@ -268,7 +411,7 @@ This returns an Array which contains the response data, status code and headers.
|
|
|
268
411
|
|
|
269
412
|
```ruby
|
|
270
413
|
begin
|
|
271
|
-
# Edit the
|
|
414
|
+
# Edit the offer of a media you sell on
|
|
272
415
|
data, status_code, headers = api_instance.update_seller_media_with_http_info(id, idempotency_key, update_seller_media_request)
|
|
273
416
|
p status_code # => 2xx
|
|
274
417
|
p headers # => { ... }
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
|
|
5
5
|
| Name | Type | Description | Notes |
|
|
6
6
|
| ---- | ---- | ----------- | ----- |
|
|
7
|
-
| **url** | **String** | The URL of the published post. It is checked to be a URL
|
|
7
|
+
| **url** | **String** | The URL of the published post. It is checked to be a URL without `<` or `>`, as the web does; whether the post carries the links is not checked here. | |
|
|
8
8
|
| **publication_date_confirmed** | **Boolean** | Must be true. Confirms the post is live, or for an order with a scheduled publication date, that it will be published on that date. | |
|
|
9
9
|
|
|
10
10
|
## Example
|
data/docs/SellerOrdersApi.md
CHANGED
|
@@ -95,7 +95,7 @@ end
|
|
|
95
95
|
|
|
96
96
|
Deliver an order
|
|
97
97
|
|
|
98
|
-
Delivers an order placed on one of your medias (`state` `pending_order_delivery`), as the web does. A post order takes the URL of the published post and the confirmation of its publication date; a link addition order takes no body, and any field is refused. The order moves to `pending_order_delivery_review` and the buyer is asked to review it, or, for a post order whose scheduled publication date is still to come, to `scheduled` without telling the buyer yet. The URL is checked to be a URL
|
|
98
|
+
Delivers an order placed on one of your medias (`state` `pending_order_delivery`), as the web does. A post order takes the URL of the published post and the confirmation of its publication date; a link addition order takes no body, and any field is refused. The order moves to `pending_order_delivery_review` and the buyer is asked to review it, or, for a post order whose scheduled publication date is still to come, to `scheduled` without telling the buyer yet. The URL is checked to be a URL without `<` or `>`, as the web does.
|
|
99
99
|
|
|
100
100
|
### Examples
|
|
101
101
|
|
|
@@ -4,6 +4,7 @@
|
|
|
4
4
|
|
|
5
5
|
| Name | Type | Description | Notes |
|
|
6
6
|
| ---- | ---- | ----------- | ----- |
|
|
7
|
+
| **typology** | **String** | | [optional] |
|
|
7
8
|
| **post_offer** | [**UpdateSellerMediaRequestPostOffer**](UpdateSellerMediaRequestPostOffer.md) | | [optional] |
|
|
8
9
|
| **link_addition_offer** | [**UpdateSellerMediaRequestLinkAdditionOffer**](UpdateSellerMediaRequestLinkAdditionOffer.md) | | [optional] |
|
|
9
10
|
| **extra_services** | [**Array<UpdateSellerMediaRequestExtraServicesInner>**](UpdateSellerMediaRequestExtraServicesInner.md) | | [optional] |
|
|
@@ -14,6 +15,7 @@
|
|
|
14
15
|
require 'growwer'
|
|
15
16
|
|
|
16
17
|
instance = Growwer::UpdateSellerMediaRequest.new(
|
|
18
|
+
typology: null,
|
|
17
19
|
post_offer: null,
|
|
18
20
|
link_addition_offer: null,
|
|
19
21
|
extra_services: null
|
|
@@ -4,7 +4,10 @@
|
|
|
4
4
|
|
|
5
5
|
| Name | Type | Description | Notes |
|
|
6
6
|
| ---- | ---- | ----------- | ----- |
|
|
7
|
-
| **pricing_options** | [**Array<UpdateSellerMediaRequestPostOfferPricingOptionsInner>**](UpdateSellerMediaRequestPostOfferPricingOptionsInner.md) | |
|
|
7
|
+
| **pricing_options** | [**Array<UpdateSellerMediaRequestPostOfferPricingOptionsInner>**](UpdateSellerMediaRequestPostOfferPricingOptionsInner.md) | | [optional] |
|
|
8
|
+
| **maximum_links** | **Integer** | | [optional] |
|
|
9
|
+
| **advertising_labelling_policy** | **String** | | [optional] |
|
|
10
|
+
| **promoted_social_networks** | **Array<String>** | | [optional] |
|
|
8
11
|
|
|
9
12
|
## Example
|
|
10
13
|
|
|
@@ -12,7 +15,10 @@
|
|
|
12
15
|
require 'growwer'
|
|
13
16
|
|
|
14
17
|
instance = Growwer::UpdateSellerMediaRequestPostOffer.new(
|
|
15
|
-
pricing_options: null
|
|
18
|
+
pricing_options: null,
|
|
19
|
+
maximum_links: null,
|
|
20
|
+
advertising_labelling_policy: null,
|
|
21
|
+
promoted_social_networks: null
|
|
16
22
|
)
|
|
17
23
|
```
|
|
18
24
|
|