late-sdk 0.0.927 → 0.0.929
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 +2 -0
- data/docs/AdCampaignsApi.md +1 -1
- data/docs/GooglePmaxAssetGroupUpdate.md +30 -0
- data/docs/GooglePmaxAssetGroupUpdateImages.md +22 -0
- data/docs/TikTokPlatformData.md +3 -3
- data/docs/UpdateAdRequest.md +5 -3
- data/docs/UpdateAdRequestCreative.md +6 -0
- data/lib/zernio-sdk/api/ad_campaigns_api.rb +2 -2
- data/lib/zernio-sdk/models/google_pmax_asset_group_update.rb +375 -0
- data/lib/zernio-sdk/models/google_pmax_asset_group_update_images.rb +259 -0
- data/lib/zernio-sdk/models/tik_tok_platform_data.rb +3 -3
- data/lib/zernio-sdk/models/update_ad_request.rb +29 -19
- data/lib/zernio-sdk/models/update_ad_request_creative.rb +87 -1
- data/lib/zernio-sdk/version.rb +1 -1
- data/lib/zernio-sdk.rb +2 -0
- data/openapi.yaml +114 -15
- data/spec/api/ad_campaigns_api_spec.rb +1 -1
- data/spec/models/google_pmax_asset_group_update_images_spec.rb +48 -0
- data/spec/models/google_pmax_asset_group_update_spec.rb +72 -0
- data/spec/models/update_ad_request_creative_spec.rb +18 -0
- data/spec/models/update_ad_request_spec.rb +6 -0
- data/zernio-sdk-0.0.929.gem +0 -0
- metadata +10 -2
- data/zernio-sdk-0.0.927.gem +0 -0
data/openapi.yaml
CHANGED
|
@@ -6813,7 +6813,7 @@ components:
|
|
|
6813
6813
|
videoCoverImageUrl:
|
|
6814
6814
|
type: string
|
|
6815
6815
|
format: uri
|
|
6816
|
-
description: Optional for video posts. URL of a custom thumbnail image (JPG, PNG, or WebP, max 20MB). The image is stitched as a single frame at the start of the video and used as the cover. Overrides videoCoverTimestampMs when provided.
|
|
6816
|
+
description: 'Optional for video posts. URL of a custom thumbnail image (JPG, PNG, or WebP, max 20MB). The image is stitched as a single frame at the start of the video and used as the cover. Accounts connected through the TikTok for Business app instead pass the URL to TikTok as the cover directly, with no stitching, and the URL must resolve on a domain we have verified with TikTok. Overrides videoCoverTimestampMs when provided.'
|
|
6817
6817
|
photoCoverIndex:
|
|
6818
6818
|
type: integer
|
|
6819
6819
|
description: Optional for photo carousels. Index of image to use as cover, 0-based (defaults to 0/first image).
|
|
@@ -6823,11 +6823,11 @@ components:
|
|
|
6823
6823
|
description: When true, TikTok may add recommended music (photos only)
|
|
6824
6824
|
videoMadeWithAi:
|
|
6825
6825
|
type: boolean
|
|
6826
|
-
description: Set true to disclose AI-generated content
|
|
6826
|
+
description: 'Set true to disclose AI-generated content. Accounts connected through the TikTok for Business app carry the disclosure on video posts only: the business photo endpoint has no AI disclosure field, so true on a direct photo post is rejected at creation rather than published undisclosed. Send draft true to publish such a photo post and set the disclosure in the TikTok app.'
|
|
6827
6827
|
description:
|
|
6828
6828
|
type: string
|
|
6829
6829
|
maxLength: 4000
|
|
6830
|
-
description: Optional long-form
|
|
6830
|
+
description: 'Optional long-form caption for photo posts (max 4000 chars). Recommended when content exceeds 90 chars, as photo titles are auto-truncated. Falls back to the post content when omitted.'
|
|
6831
6831
|
|
|
6832
6832
|
TelegramPlatformData:
|
|
6833
6833
|
type: object
|
|
@@ -9432,6 +9432,70 @@ components:
|
|
|
9432
9432
|
landscape: ['https://example.com/landscape.png']
|
|
9433
9433
|
square: ['https://example.com/square.png']
|
|
9434
9434
|
logo: ['https://example.com/logo.png']
|
|
9435
|
+
GooglePmaxAssetGroupUpdate:
|
|
9436
|
+
type: object
|
|
9437
|
+
additionalProperties: false
|
|
9438
|
+
minProperties: 1
|
|
9439
|
+
description: |
|
|
9440
|
+
Replacement assets for an existing Performance Max asset group, sent on PUT /v1/ads/{adId}.
|
|
9441
|
+
Google assets are immutable (AssetService only creates), so each field you send becomes new
|
|
9442
|
+
assets linked to the asset group, and the assets that role held are unlinked in the same
|
|
9443
|
+
atomic request. Send one field or many; a field you omit is left untouched. Re-sending a
|
|
9444
|
+
value the asset group already carries is a no-op for that asset, not a re-upload.
|
|
9445
|
+
Unlinked assets stay in the account's asset library: Google has no asset delete.
|
|
9446
|
+
At least one description must be 60 characters or fewer. Texts within each list must be distinct.
|
|
9447
|
+
properties:
|
|
9448
|
+
finalUrl: { type: string, format: uri, pattern: '^https?://', description: "Replaces the asset group's final URL." }
|
|
9449
|
+
headlines:
|
|
9450
|
+
type: array
|
|
9451
|
+
minItems: 3
|
|
9452
|
+
maxItems: 15
|
|
9453
|
+
uniqueItems: true
|
|
9454
|
+
description: "Replaces every HEADLINE asset on the group."
|
|
9455
|
+
items: { type: string, minLength: 1, maxLength: 30 }
|
|
9456
|
+
longHeadline: { type: string, minLength: 1, maxLength: 90, description: "Replaces the LONG_HEADLINE asset." }
|
|
9457
|
+
descriptions:
|
|
9458
|
+
type: array
|
|
9459
|
+
minItems: 2
|
|
9460
|
+
maxItems: 5
|
|
9461
|
+
uniqueItems: true
|
|
9462
|
+
description: "Replaces every DESCRIPTION asset. At least one must be 60 characters or fewer."
|
|
9463
|
+
items: { type: string, minLength: 1, maxLength: 90 }
|
|
9464
|
+
businessName: { type: string, minLength: 1, maxLength: 25, description: "Replaces the BUSINESS_NAME asset." }
|
|
9465
|
+
images:
|
|
9466
|
+
type: object
|
|
9467
|
+
additionalProperties: false
|
|
9468
|
+
minProperties: 1
|
|
9469
|
+
description: "Public HTTP(S) image URLs. Each role you send replaces that role's images; roles you omit stay. GIF, JPEG or PNG, at most 5120 KB per image."
|
|
9470
|
+
properties:
|
|
9471
|
+
landscape:
|
|
9472
|
+
type: array
|
|
9473
|
+
minItems: 1
|
|
9474
|
+
maxItems: 20
|
|
9475
|
+
description: "Replaces MARKETING_IMAGE assets. Aspect ratio 1.91:1, minimum 600 x 314 pixels."
|
|
9476
|
+
items: { type: string, format: uri, pattern: '^https?://' }
|
|
9477
|
+
square:
|
|
9478
|
+
type: array
|
|
9479
|
+
minItems: 1
|
|
9480
|
+
maxItems: 20
|
|
9481
|
+
description: "Replaces SQUARE_MARKETING_IMAGE assets. Aspect ratio 1:1, minimum 300 x 300 pixels."
|
|
9482
|
+
items: { type: string, format: uri, pattern: '^https?://' }
|
|
9483
|
+
logo:
|
|
9484
|
+
type: array
|
|
9485
|
+
minItems: 1
|
|
9486
|
+
maxItems: 5
|
|
9487
|
+
description: "Replaces LOGO assets. Aspect ratio 1:1, minimum 128 x 128 pixels."
|
|
9488
|
+
items: { type: string, format: uri, pattern: '^https?://' }
|
|
9489
|
+
youtubeVideoIds:
|
|
9490
|
+
type: array
|
|
9491
|
+
minItems: 1
|
|
9492
|
+
maxItems: 5
|
|
9493
|
+
description: "Replaces YOUTUBE_VIDEO assets with existing YouTube video ids. Video uploads and arbitrary video URLs are not supported."
|
|
9494
|
+
items: { type: string, pattern: '^[A-Za-z0-9_-]{11}$' }
|
|
9495
|
+
example:
|
|
9496
|
+
headlines: ['Schedule posts', 'One social API', 'Build with Zernio']
|
|
9497
|
+
images:
|
|
9498
|
+
landscape: ['https://example.com/new-landscape.png']
|
|
9435
9499
|
GooglePmaxAssetGroup:
|
|
9436
9500
|
type: object
|
|
9437
9501
|
required: [id, resourceName, name, status, finalUrls, assets]
|
|
@@ -45318,11 +45382,21 @@ paths:
|
|
|
45318
45382
|
Each list you send becomes the FULL new set of its kind (criteria not in the
|
|
45319
45383
|
list are removed); a kind left out is untouched. Any other `targeting` field
|
|
45320
45384
|
returns 400: Google cannot mutate it post-create without recreating
|
|
45321
|
-
the campaign.
|
|
45322
|
-
|
|
45323
|
-
|
|
45324
|
-
|
|
45325
|
-
|
|
45385
|
+
the campaign. Creative edits are dispatched on the ad's `advertisingChannelType`,
|
|
45386
|
+
and every supported field replaces a whole set; a field you omit is preserved.
|
|
45387
|
+
- **Search**: top-level `headlines`, `descriptions` and `finalUrls`. Use 3-15 headlines
|
|
45388
|
+
(1-30 characters) and 2-4 descriptions (1-90 characters). Omit an asset to remove it;
|
|
45389
|
+
omit pinnedField on an included asset to unpin it. Updates do not pad or truncate text.
|
|
45390
|
+
The legacy creative fields remain unsupported.
|
|
45391
|
+
- **Display**: top-level `headlines` (1-5, no pinnedField, display ads have no pinned
|
|
45392
|
+
positions), `descriptions` (1-5) and `finalUrls`, plus `creative.longHeadline`,
|
|
45393
|
+
`creative.businessName`, `creative.imageUrl` (the landscape marketing image) and
|
|
45394
|
+
`creative.squareImageUrl`. Each image URL is uploaded as a new Google asset and the ad
|
|
45395
|
+
is pointed at it; Google assets are immutable, so the previous asset stays in the
|
|
45396
|
+
account's asset library.
|
|
45397
|
+
- **Performance Max**: top-level `assetGroup`, which swaps asset roles on the ad's asset
|
|
45398
|
+
group. The other creative fields return 422 for this channel, and `assetGroup` returns
|
|
45399
|
+
422 on any other channel.
|
|
45326
45400
|
- **LinkedIn**: status, budget, targeting (countries or regions, excludedLocations (countries),
|
|
45327
45401
|
the B2B facets, and audience segments; applied to the LinkedIn Campaign via
|
|
45328
45402
|
PARTIAL_UPDATE, and REPLACES the campaign's entire targetingCriteria, not a merge),
|
|
@@ -45393,6 +45467,25 @@ paths:
|
|
|
45393
45467
|
- text: Build social publishing into your application.
|
|
45394
45468
|
finalUrls:
|
|
45395
45469
|
- https://zernio.com
|
|
45470
|
+
googlePmaxAssets:
|
|
45471
|
+
summary: "Swap the headlines and the landscape image on a Performance Max asset group."
|
|
45472
|
+
value:
|
|
45473
|
+
assetGroup:
|
|
45474
|
+
headlines: ['Schedule posts', 'One social API', 'Build with Zernio']
|
|
45475
|
+
images:
|
|
45476
|
+
landscape: ['https://example.com/new-landscape.png']
|
|
45477
|
+
googleDisplayCreative:
|
|
45478
|
+
summary: "Replace the text and the image on a Google Display ad."
|
|
45479
|
+
value:
|
|
45480
|
+
headlines:
|
|
45481
|
+
- text: Schedule posts
|
|
45482
|
+
- text: One social API
|
|
45483
|
+
descriptions:
|
|
45484
|
+
- text: Publish and manage social content through one API.
|
|
45485
|
+
creative:
|
|
45486
|
+
longHeadline: Schedule social content from your app with Zernio
|
|
45487
|
+
imageUrl: 'https://example.com/new-landscape.png'
|
|
45488
|
+
squareImageUrl: 'https://example.com/new-square.png'
|
|
45396
45489
|
metaPromotion:
|
|
45397
45490
|
summary: "Remove a Meta promotion."
|
|
45398
45491
|
value:
|
|
@@ -45404,25 +45497,28 @@ paths:
|
|
|
45404
45497
|
properties:
|
|
45405
45498
|
headlines:
|
|
45406
45499
|
type: array
|
|
45407
|
-
minItems:
|
|
45500
|
+
minItems: 1
|
|
45408
45501
|
maxItems: 15
|
|
45409
45502
|
items:
|
|
45410
45503
|
$ref: '#/components/schemas/GoogleRsaHeadline'
|
|
45411
|
-
description: "Google
|
|
45504
|
+
description: "Google Search and Display only. Replaces the complete headline list. Search takes 3-15, Display 1-5 and rejects pinnedField; the count is checked once the ad's channel is known. No padding or truncation on update."
|
|
45412
45505
|
descriptions:
|
|
45413
45506
|
type: array
|
|
45414
|
-
minItems:
|
|
45415
|
-
maxItems:
|
|
45507
|
+
minItems: 1
|
|
45508
|
+
maxItems: 5
|
|
45416
45509
|
items:
|
|
45417
45510
|
$ref: '#/components/schemas/GoogleRsaDescription'
|
|
45418
|
-
description: "Google
|
|
45511
|
+
description: "Google Search and Display only. Replaces the complete description list. Search takes 2-4, Display 1-5 and rejects pinnedField. No padding or truncation on update."
|
|
45419
45512
|
finalUrls:
|
|
45420
45513
|
type: array
|
|
45421
45514
|
minItems: 1
|
|
45422
45515
|
items:
|
|
45423
45516
|
type: string
|
|
45424
45517
|
format: uri
|
|
45425
|
-
description: "Google
|
|
45518
|
+
description: "Google Search and Display only. Replaces final URLs. Omitted lists stay unchanged. For Performance Max use assetGroup.finalUrl."
|
|
45519
|
+
assetGroup:
|
|
45520
|
+
allOf: [{ $ref: '#/components/schemas/GooglePmaxAssetGroupUpdate' }]
|
|
45521
|
+
description: "Google Performance Max only. Replaces whole asset roles on the ad's asset group. Returns 422 on any other platform or channel."
|
|
45426
45522
|
status: { type: string, enum: [active, paused] }
|
|
45427
45523
|
budget:
|
|
45428
45524
|
type: object
|
|
@@ -45542,6 +45638,9 @@ paths:
|
|
|
45542
45638
|
promotion: { $ref: '#/components/schemas/MetaPromotion' }
|
|
45543
45639
|
creativeFeatures: { $ref: '#/components/schemas/MetaCreativeFeatures' }
|
|
45544
45640
|
headline: { type: string, description: "Meta and LinkedIn (TikTok has no headline slot)" }
|
|
45641
|
+
longHeadline: { type: string, minLength: 1, maxLength: 90, description: "Google Display only. Replaces the responsive display ad's long headline." }
|
|
45642
|
+
businessName: { type: string, minLength: 1, maxLength: 25, description: "Google Display only. Replaces the responsive display ad's business name." }
|
|
45643
|
+
squareImageUrl: { type: string, format: uri, description: "Google Display only. Uploaded as a new square (1:1) marketing image asset that replaces the current one." }
|
|
45545
45644
|
body: { type: string }
|
|
45546
45645
|
description: { type: string, maxLength: 255, description: "Link description slot (Meta `link_data.description` / `video_data.link_description`, LinkedIn creative description)." }
|
|
45547
45646
|
callToAction: { type: string }
|
|
@@ -45567,7 +45666,7 @@ paths:
|
|
|
45567
45666
|
'403':
|
|
45568
45667
|
description: 'Returned with code `ads_allowance_exceeded` when the team has no payment method on file and has reached the 500 free live ads: add a card to resume.'
|
|
45569
45668
|
'404': { $ref: '#/components/responses/NotFound' }
|
|
45570
|
-
'422': { description: "The ad has no campaign or ad group on the platform yet,
|
|
45669
|
+
'422': { description: "The ad has no campaign or ad group on the platform yet, the Google targeting edit asks for something that is create-only (`locations.customLocations`), or a creative field the ad's channel cannot carry: assetGroup on a non-Performance-Max ad, a Google Display field on a Search ad, a pinnedField on a Display headline, or any Google-only field on another platform. A Google creative edit that cannot reach Google at all (the ad has no `platformAdId`, or its ad account cannot be loaded) also returns 422 rather than a 200 that changed nothing." }
|
|
45571
45670
|
'501': { description: "targeting or creative not supported on the platform (supported on Meta, TikTok, and LinkedIn)" }
|
|
45572
45671
|
'502': { description: "Meta accepted the request then failed to produce the media (upload session, chunk transfer, processing timeout, or a response with no image hash). Inspect `platformError.reason`." }
|
|
45573
45672
|
delete:
|
|
@@ -559,7 +559,7 @@ describe 'AdCampaignsApi' do
|
|
|
559
559
|
|
|
560
560
|
# unit tests for update_ad
|
|
561
561
|
# Update ad
|
|
562
|
-
# Patch one or more fields on an ad. Status, budget, targeting, and creative changes are propagated to the platform. Per-platform support: - **Meta** (Facebook + Instagram): all fields supported. - **TikTok**: status, budget, targeting (via `/v2/adgroup/update/`), and creative (via `/v2/ad/update/` patch-style: `headline` is ignored, `body` becomes `ad_text`). - **Google**: status, budget, KEYWORD edits via `targeting.keywords` / `targeting.negativeKeywords`, DEVICE bid adjustments via `targeting.devices`, LOCATION edits via `targeting.locations` (or the equivalent top-level `targeting.countries` / `regions` / `cities` / `zips` / `metros`), and LANGUAGE edits via `targeting.languages`. Each list you send becomes the FULL new set of its kind (criteria not in the list are removed); a kind left out is untouched. Any other `targeting` field returns 400: Google cannot mutate it post-create without recreating the campaign.
|
|
562
|
+
# Patch one or more fields on an ad. Status, budget, targeting, and creative changes are propagated to the platform. Per-platform support: - **Meta** (Facebook + Instagram): all fields supported. - **TikTok**: status, budget, targeting (via `/v2/adgroup/update/`), and creative (via `/v2/ad/update/` patch-style: `headline` is ignored, `body` becomes `ad_text`). - **Google**: status, budget, KEYWORD edits via `targeting.keywords` / `targeting.negativeKeywords`, DEVICE bid adjustments via `targeting.devices`, LOCATION edits via `targeting.locations` (or the equivalent top-level `targeting.countries` / `regions` / `cities` / `zips` / `metros`), and LANGUAGE edits via `targeting.languages`. Each list you send becomes the FULL new set of its kind (criteria not in the list are removed); a kind left out is untouched. Any other `targeting` field returns 400: Google cannot mutate it post-create without recreating the campaign. Creative edits are dispatched on the ad's `advertisingChannelType`, and every supported field replaces a whole set; a field you omit is preserved. - **Search**: top-level `headlines`, `descriptions` and `finalUrls`. Use 3-15 headlines (1-30 characters) and 2-4 descriptions (1-90 characters). Omit an asset to remove it; omit pinnedField on an included asset to unpin it. Updates do not pad or truncate text. The legacy creative fields remain unsupported. - **Display**: top-level `headlines` (1-5, no pinnedField, display ads have no pinned positions), `descriptions` (1-5) and `finalUrls`, plus `creative.longHeadline`, `creative.businessName`, `creative.imageUrl` (the landscape marketing image) and `creative.squareImageUrl`. Each image URL is uploaded as a new Google asset and the ad is pointed at it; Google assets are immutable, so the previous asset stays in the account's asset library. - **Performance Max**: top-level `assetGroup`, which swaps asset roles on the ad's asset group. The other creative fields return 422 for this channel, and `assetGroup` returns 422 on any other channel. - **LinkedIn**: status, budget, targeting (countries or regions, excludedLocations (countries), the B2B facets, and audience segments; applied to the LinkedIn Campaign via PARTIAL_UPDATE, and REPLACES the campaign's entire targetingCriteria, not a merge), and creative (uploads new media, creates a replacement inline creative on the same campaign, pauses the old one). - **Pinterest / X / OpenAI Ads**: status + budget only. Sending `targeting` or `creative` returns 501 with code `unsupported_platform_operation`. OpenAI Ads budget is lifetime-only (see `budget.type` below). **Google location and language replacement:** locations, languages and devices are campaign-level criteria on Google, so these edits apply to every ad group and ad in the ad's campaign. Send the complete list you want to keep. Zernio diffs it against the campaign's live criteria and sends the removes and the creates in ONE `googleAds:mutate`, so the campaign is never left with a half-applied set; criteria already in the list keep their criterion ID and history. Excluded (negative) locations are left untouched. Two cases are refused rather than applied: an empty location list returns 400 (a Google campaign with no location criteria targets every country, which is never what \"remove my locations\" means, so omit the field instead), and radius targeting (`customLocations`) returns 422 because it is a separate Google criterion type that this replacement neither creates nor removes. Send either `targeting.locations` or the top-level geo fields, not both: mixing them returns 400. **Google keyword replacement:** These edits affect the ad's entire ad group, including sibling ads. Positive (`targeting.keywords`) and negative (`targeting.negativeKeywords`) sets are independent: omit a field to leave that set unchanged, or send `[]` to remove every keyword of that kind. Zernio compares each supplied set with Google's live criteria by case-insensitive keyword text and match type. A matching criterion is left untouched, retaining its criterion ID, enabled/paused status, keyword-level bid overrides, labels, and criterion-associated history/statistics. Zernio does not reset its quality score; Google continues to calculate scores and statistics normally. Text comparison does not trim whitespace. A bare string or an object without `matchType` means `broad`, not the existing criterion's match type. For example, resending an existing `{ \"text\": \"plumber\", \"matchType\": \"exact\" }` preserves it; sending `\"plumber\"` instead removes that EXACT criterion and requests a BROAD one. Changing text or match type removes criteria no longer requested and creates any missing criteria. New criteria get new IDs and do not inherit removed criteria's bid overrides, labels, or history. Historical reporting for a removed criterion is not transferred to its replacement. To add keywords without replacing a set, use [POST /v1/ads/keywords](https://docs.zernio.com/ad-campaigns/add-ad-keywords). Use `PATCH /v1/ads/keywords/{keywordId}` to pause/enable one keyword, or `DELETE /v1/ads/keywords/{keywordId}` to remove it.
|
|
563
563
|
# @param ad_id
|
|
564
564
|
# @param update_ad_request
|
|
565
565
|
# @param [Hash] opts the optional parameters
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
=begin
|
|
2
|
+
#Zernio API
|
|
3
|
+
|
|
4
|
+
#API reference for Zernio. Authenticate with a Bearer API key. Base URL: https://zernio.com/api Versioning and deprecation: all endpoints are versioned in the URL path (current version: /v1). Breaking changes only ship in a new path version; existing versions keep working. Deprecated operations are marked 'deprecated: true' in this spec and announced in the changelog (https://zernio.com/changelog) before removal. Errors: every 4xx/5xx response is application/json with a machine-readable 'code' and a human-readable 'error' message (see the ErrorResponse schema).
|
|
5
|
+
|
|
6
|
+
The version of the OpenAPI document: 1.0.4
|
|
7
|
+
Contact: support@zernio.com
|
|
8
|
+
Generated by: https://openapi-generator.tech
|
|
9
|
+
Generator version: 7.19.0
|
|
10
|
+
|
|
11
|
+
=end
|
|
12
|
+
|
|
13
|
+
require 'spec_helper'
|
|
14
|
+
require 'json'
|
|
15
|
+
require 'date'
|
|
16
|
+
|
|
17
|
+
# Unit tests for Zernio::GooglePmaxAssetGroupUpdateImages
|
|
18
|
+
# Automatically generated by openapi-generator (https://openapi-generator.tech)
|
|
19
|
+
# Please update as you see appropriate
|
|
20
|
+
describe Zernio::GooglePmaxAssetGroupUpdateImages do
|
|
21
|
+
#let(:instance) { Zernio::GooglePmaxAssetGroupUpdateImages.new }
|
|
22
|
+
|
|
23
|
+
describe 'test an instance of GooglePmaxAssetGroupUpdateImages' do
|
|
24
|
+
it 'should create an instance of GooglePmaxAssetGroupUpdateImages' do
|
|
25
|
+
# uncomment below to test the instance creation
|
|
26
|
+
#expect(instance).to be_instance_of(Zernio::GooglePmaxAssetGroupUpdateImages)
|
|
27
|
+
end
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
describe 'test attribute "landscape"' 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 "square"' 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 "logo"' 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
|
+
end
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
=begin
|
|
2
|
+
#Zernio API
|
|
3
|
+
|
|
4
|
+
#API reference for Zernio. Authenticate with a Bearer API key. Base URL: https://zernio.com/api Versioning and deprecation: all endpoints are versioned in the URL path (current version: /v1). Breaking changes only ship in a new path version; existing versions keep working. Deprecated operations are marked 'deprecated: true' in this spec and announced in the changelog (https://zernio.com/changelog) before removal. Errors: every 4xx/5xx response is application/json with a machine-readable 'code' and a human-readable 'error' message (see the ErrorResponse schema).
|
|
5
|
+
|
|
6
|
+
The version of the OpenAPI document: 1.0.4
|
|
7
|
+
Contact: support@zernio.com
|
|
8
|
+
Generated by: https://openapi-generator.tech
|
|
9
|
+
Generator version: 7.19.0
|
|
10
|
+
|
|
11
|
+
=end
|
|
12
|
+
|
|
13
|
+
require 'spec_helper'
|
|
14
|
+
require 'json'
|
|
15
|
+
require 'date'
|
|
16
|
+
|
|
17
|
+
# Unit tests for Zernio::GooglePmaxAssetGroupUpdate
|
|
18
|
+
# Automatically generated by openapi-generator (https://openapi-generator.tech)
|
|
19
|
+
# Please update as you see appropriate
|
|
20
|
+
describe Zernio::GooglePmaxAssetGroupUpdate do
|
|
21
|
+
#let(:instance) { Zernio::GooglePmaxAssetGroupUpdate.new }
|
|
22
|
+
|
|
23
|
+
describe 'test an instance of GooglePmaxAssetGroupUpdate' do
|
|
24
|
+
it 'should create an instance of GooglePmaxAssetGroupUpdate' do
|
|
25
|
+
# uncomment below to test the instance creation
|
|
26
|
+
#expect(instance).to be_instance_of(Zernio::GooglePmaxAssetGroupUpdate)
|
|
27
|
+
end
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
describe 'test attribute "final_url"' 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 "headlines"' 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 "long_headline"' 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 "descriptions"' do
|
|
49
|
+
it 'should work' do
|
|
50
|
+
# assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/
|
|
51
|
+
end
|
|
52
|
+
end
|
|
53
|
+
|
|
54
|
+
describe 'test attribute "business_name"' do
|
|
55
|
+
it 'should work' do
|
|
56
|
+
# assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/
|
|
57
|
+
end
|
|
58
|
+
end
|
|
59
|
+
|
|
60
|
+
describe 'test attribute "images"' do
|
|
61
|
+
it 'should work' do
|
|
62
|
+
# assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/
|
|
63
|
+
end
|
|
64
|
+
end
|
|
65
|
+
|
|
66
|
+
describe 'test attribute "youtube_video_ids"' do
|
|
67
|
+
it 'should work' do
|
|
68
|
+
# assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/
|
|
69
|
+
end
|
|
70
|
+
end
|
|
71
|
+
|
|
72
|
+
end
|
|
@@ -49,6 +49,24 @@ describe Zernio::UpdateAdRequestCreative do
|
|
|
49
49
|
end
|
|
50
50
|
end
|
|
51
51
|
|
|
52
|
+
describe 'test attribute "long_headline"' do
|
|
53
|
+
it 'should work' do
|
|
54
|
+
# assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/
|
|
55
|
+
end
|
|
56
|
+
end
|
|
57
|
+
|
|
58
|
+
describe 'test attribute "business_name"' 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 "square_image_url"' 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
|
+
|
|
52
70
|
describe 'test attribute "body"' do
|
|
53
71
|
it 'should work' do
|
|
54
72
|
# assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/
|
|
@@ -45,6 +45,12 @@ describe Zernio::UpdateAdRequest do
|
|
|
45
45
|
end
|
|
46
46
|
end
|
|
47
47
|
|
|
48
|
+
describe 'test attribute "asset_group"' do
|
|
49
|
+
it 'should work' do
|
|
50
|
+
# assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/
|
|
51
|
+
end
|
|
52
|
+
end
|
|
53
|
+
|
|
48
54
|
describe 'test attribute "status"' do
|
|
49
55
|
it 'should work' do
|
|
50
56
|
# assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/
|
|
Binary file
|
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
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.929
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- OpenAPI-Generator
|
|
@@ -1018,6 +1018,8 @@ files:
|
|
|
1018
1018
|
- docs/GooglePmaxAssetGroupAssetsInner.md
|
|
1019
1019
|
- docs/GooglePmaxAssetGroupInput.md
|
|
1020
1020
|
- docs/GooglePmaxAssetGroupInputImages.md
|
|
1021
|
+
- docs/GooglePmaxAssetGroupUpdate.md
|
|
1022
|
+
- docs/GooglePmaxAssetGroupUpdateImages.md
|
|
1021
1023
|
- docs/GoogleRsaDescription.md
|
|
1022
1024
|
- docs/GoogleRsaHeadline.md
|
|
1023
1025
|
- docs/GoogleSitelink.md
|
|
@@ -3157,6 +3159,8 @@ files:
|
|
|
3157
3159
|
- lib/zernio-sdk/models/google_pmax_asset_group_assets_inner.rb
|
|
3158
3160
|
- lib/zernio-sdk/models/google_pmax_asset_group_input.rb
|
|
3159
3161
|
- lib/zernio-sdk/models/google_pmax_asset_group_input_images.rb
|
|
3162
|
+
- lib/zernio-sdk/models/google_pmax_asset_group_update.rb
|
|
3163
|
+
- lib/zernio-sdk/models/google_pmax_asset_group_update_images.rb
|
|
3160
3164
|
- lib/zernio-sdk/models/google_rsa_description.rb
|
|
3161
3165
|
- lib/zernio-sdk/models/google_rsa_headline.rb
|
|
3162
3166
|
- lib/zernio-sdk/models/google_sitelink.rb
|
|
@@ -5253,6 +5257,8 @@ files:
|
|
|
5253
5257
|
- spec/models/google_pmax_asset_group_input_images_spec.rb
|
|
5254
5258
|
- spec/models/google_pmax_asset_group_input_spec.rb
|
|
5255
5259
|
- spec/models/google_pmax_asset_group_spec.rb
|
|
5260
|
+
- spec/models/google_pmax_asset_group_update_images_spec.rb
|
|
5261
|
+
- spec/models/google_pmax_asset_group_update_spec.rb
|
|
5256
5262
|
- spec/models/google_rsa_description_spec.rb
|
|
5257
5263
|
- spec/models/google_rsa_headline_spec.rb
|
|
5258
5264
|
- spec/models/google_sitelink_spec.rb
|
|
@@ -6361,7 +6367,7 @@ files:
|
|
|
6361
6367
|
- spec/models/you_tube_video_retention_response_retention_curve_inner_spec.rb
|
|
6362
6368
|
- spec/models/you_tube_video_retention_response_spec.rb
|
|
6363
6369
|
- spec/spec_helper.rb
|
|
6364
|
-
- zernio-sdk-0.0.
|
|
6370
|
+
- zernio-sdk-0.0.929.gem
|
|
6365
6371
|
- zernio-sdk.gemspec
|
|
6366
6372
|
homepage: https://openapi-generator.tech
|
|
6367
6373
|
licenses:
|
|
@@ -7152,6 +7158,7 @@ test_files:
|
|
|
7152
7158
|
- spec/models/send_inbox_message_request_interactive_action_one_of8_parameters_spec.rb
|
|
7153
7159
|
- spec/models/food_menu_item_spec.rb
|
|
7154
7160
|
- spec/models/discord_platform_data_thread_from_message_spec.rb
|
|
7161
|
+
- spec/models/google_pmax_asset_group_update_images_spec.rb
|
|
7155
7162
|
- spec/models/update_google_business_location_details_request_service_items_inner_structured_service_item_spec.rb
|
|
7156
7163
|
- spec/models/get_youtube_captions200_response_available_tracks_inner_spec.rb
|
|
7157
7164
|
- spec/models/send_business_agent_event_request_spec.rb
|
|
@@ -8283,6 +8290,7 @@ test_files:
|
|
|
8283
8290
|
- spec/models/get_google_business_performance200_response_spec.rb
|
|
8284
8291
|
- spec/models/update_whats_app_display_name_request_spec.rb
|
|
8285
8292
|
- spec/models/create_discord_scheduled_event_request_entity_one_of_spec.rb
|
|
8293
|
+
- spec/models/google_pmax_asset_group_update_spec.rb
|
|
8286
8294
|
- spec/models/like_inbox_comment200_response_spec.rb
|
|
8287
8295
|
- spec/models/create_ad_creative_request_spec.rb
|
|
8288
8296
|
- spec/models/create_whats_app_flow_request_spec.rb
|
data/zernio-sdk-0.0.927.gem
DELETED
|
Binary file
|