@getlatedev/node 0.2.938 → 0.2.940

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.
@@ -4682,6 +4682,95 @@ export type GeoRestriction = {
4682
4682
  countries: Array<(string)>;
4683
4683
  };
4684
4684
 
4685
+ export type GoogleAdLabel = {
4686
+ /**
4687
+ * Google label id
4688
+ */
4689
+ id?: string;
4690
+ resourceName?: string;
4691
+ name?: string;
4692
+ status?: 'ENABLED' | 'REMOVED' | 'UNKNOWN';
4693
+ /**
4694
+ * #RRGGBB
4695
+ */
4696
+ backgroundColor?: (string) | null;
4697
+ /**
4698
+ * Null when empty.
4699
+ */
4700
+ description?: (string) | null;
4701
+ };
4702
+
4703
+ export type status11 = 'ENABLED' | 'REMOVED' | 'UNKNOWN';
4704
+
4705
+ /**
4706
+ * At least one id across the four target lists. Up to 1000 ids per list.
4707
+ */
4708
+ export type GoogleAdLabelAssignments = {
4709
+ /**
4710
+ * Zernio SocialAccount id (Google Ads)
4711
+ */
4712
+ accountId: string;
4713
+ /**
4714
+ * Google customer id. Required when the connection has multiple customers.
4715
+ */
4716
+ adAccountId?: string;
4717
+ /**
4718
+ * Alias of adAccountId
4719
+ * @deprecated
4720
+ */
4721
+ customerId?: string;
4722
+ /**
4723
+ * Google campaign ids
4724
+ */
4725
+ campaignIds?: Array<(string)>;
4726
+ /**
4727
+ * Google ad group ids
4728
+ */
4729
+ adSetIds?: Array<(string)>;
4730
+ /**
4731
+ * Google ad group ad ids, {adGroupId}~{adId}
4732
+ */
4733
+ adIds?: Array<(string)>;
4734
+ /**
4735
+ * Google keyword criterion ids, {adGroupId}~{criterionId}
4736
+ */
4737
+ keywordIds?: Array<(string)>;
4738
+ };
4739
+
4740
+ /**
4741
+ * Link one asset to the asset group. Send exactly one of asset (an existing asset), text, imageUrl or youtubeVideoId (new content, created in the same request).
4742
+ */
4743
+ export type GoogleAssetGroupAssetLink = {
4744
+ /**
4745
+ * Google AssetFieldType, such as HEADLINE, LONG_HEADLINE, DESCRIPTION, BUSINESS_NAME, MARKETING_IMAGE, SQUARE_MARKETING_IMAGE, PORTRAIT_MARKETING_IMAGE, LOGO, LANDSCAPE_LOGO or YOUTUBE_VIDEO.
4746
+ */
4747
+ fieldType: string;
4748
+ /**
4749
+ * Existing asset id or resource name customers/{customerId}/assets/{assetId}. Must belong to the campaign's ad account.
4750
+ */
4751
+ asset?: string;
4752
+ /**
4753
+ * Text assets link as HEADLINE, LONG_HEADLINE, DESCRIPTION or BUSINESS_NAME.
4754
+ */
4755
+ text?: string;
4756
+ /**
4757
+ * Public http(s) image. Links as an image role or LOGO / LANDSCAPE_LOGO.
4758
+ */
4759
+ imageUrl?: string;
4760
+ /**
4761
+ * Links as YOUTUBE_VIDEO.
4762
+ */
4763
+ youtubeVideoId?: string;
4764
+ };
4765
+
4766
+ export type GoogleAssetGroupAssetUnlink = {
4767
+ fieldType: string;
4768
+ /**
4769
+ * Asset id or resource name, as returned in the asset group's assets.
4770
+ */
4771
+ asset: string;
4772
+ };
4773
+
4685
4774
  /**
4686
4775
  * Supply fields for exactly one asset type per update. finalUrls may accompany sitelinkAsset. Shared asset edits affect every attachment using the asset.
4687
4776
  */
@@ -4863,6 +4952,88 @@ export type GoogleBusinessReview = {
4863
4952
  */
4864
4953
  export type starRating = 'ONE' | 'TWO' | 'THREE' | 'FOUR' | 'FIVE';
4865
4954
 
4955
+ /**
4956
+ * Exactly one key. Omit the value (for example { productBrand: {} }) for the everything-else node of that level.
4957
+ */
4958
+ export type GoogleListingGroupDimension = {
4959
+ productBrand?: {
4960
+ value?: string;
4961
+ };
4962
+ productCategory?: {
4963
+ /**
4964
+ * Google product category id.
4965
+ */
4966
+ categoryId?: string;
4967
+ level: 'LEVEL1' | 'LEVEL2' | 'LEVEL3' | 'LEVEL4' | 'LEVEL5';
4968
+ };
4969
+ productType?: {
4970
+ value?: string;
4971
+ level: 'LEVEL1' | 'LEVEL2' | 'LEVEL3' | 'LEVEL4' | 'LEVEL5';
4972
+ };
4973
+ productItemId?: {
4974
+ value?: string;
4975
+ };
4976
+ productCondition?: {
4977
+ condition?: 'NEW' | 'REFURBISHED' | 'USED';
4978
+ };
4979
+ productChannel?: {
4980
+ channel?: 'ONLINE' | 'LOCAL';
4981
+ };
4982
+ productCustomAttribute?: {
4983
+ value?: string;
4984
+ index: 'INDEX0' | 'INDEX1' | 'INDEX2' | 'INDEX3' | 'INDEX4';
4985
+ };
4986
+ };
4987
+
4988
+ export type level = 'LEVEL1' | 'LEVEL2' | 'LEVEL3' | 'LEVEL4' | 'LEVEL5';
4989
+
4990
+ export type condition = 'NEW' | 'REFURBISHED' | 'USED';
4991
+
4992
+ export type channel3 = 'ONLINE' | 'LOCAL';
4993
+
4994
+ export type index = 'INDEX0' | 'INDEX1' | 'INDEX2' | 'INDEX3' | 'INDEX4';
4995
+
4996
+ export type GoogleListingGroupFilterNode = {
4997
+ id: string;
4998
+ /**
4999
+ * customers/{customerId}/assetGroupListingGroupFilters/{assetGroupId}~{filterId}
5000
+ */
5001
+ resourceName: string;
5002
+ /**
5003
+ * Null for the root node.
5004
+ */
5005
+ parentResourceName: (string) | null;
5006
+ type: 'SUBDIVISION' | 'UNIT_INCLUDED' | 'UNIT_EXCLUDED';
5007
+ listingSource: string;
5008
+ /**
5009
+ * Google's case value for the node, such as { productBrand: { value: 'Acme' } }. A dimension with no value is the everything-else node. Null for the root.
5010
+ */
5011
+ dimension: {
5012
+ [key: string]: unknown;
5013
+ } | null;
5014
+ };
5015
+
5016
+ export type type7 = 'SUBDIVISION' | 'UNIT_INCLUDED' | 'UNIT_EXCLUDED';
5017
+
5018
+ export type GoogleListingGroupNode = {
5019
+ dimension: GoogleListingGroupDimension;
5020
+ /**
5021
+ * Leaf only. true excludes these products.
5022
+ */
5023
+ excluded?: boolean;
5024
+ /**
5025
+ * Makes the node a subdivision. Children share one dimension (and level or index) and include exactly one everything-else node.
5026
+ */
5027
+ children?: Array<GoogleListingGroupNode>;
5028
+ };
5029
+
5030
+ /**
5031
+ * The root of a Performance Max retail listing-group tree (listing source SHOPPING). No children targets all products. Requires a campaign linked to Merchant Center.
5032
+ */
5033
+ export type GoogleListingGroupTree = {
5034
+ children?: Array<GoogleListingGroupNode>;
5035
+ };
5036
+
4866
5037
  /**
4867
5038
  * Google only. Who a campaign's location targeting reaches (Google's
4868
5039
  * `campaign.geo_target_type_setting.positive_geo_target_type`).
@@ -4876,14 +5047,33 @@ export type starRating = 'ONE' | 'TWO' | 'THREE' | 'FOUR' | 'FIVE';
4876
5047
  export type GoogleLocationTargetingType = 'presence' | 'presence_or_interest';
4877
5048
 
4878
5049
  export type GooglePmaxAssetGroup = {
5050
+ /**
5051
+ * Stable Google asset group id. Use it in the asset-group endpoints below.
5052
+ */
4879
5053
  id: string;
5054
+ /**
5055
+ * customers/{customerId}/assetGroups/{assetGroupId}
5056
+ */
4880
5057
  resourceName: string;
5058
+ campaignId: string;
4881
5059
  name: string;
4882
5060
  /**
4883
5061
  * Asset-group status on Google. Campaign status independently controls delivery.
4884
5062
  */
4885
5063
  status: string;
4886
5064
  finalUrls: Array<(string)>;
5065
+ finalMobileUrls: Array<(string)>;
5066
+ path1: (string) | null;
5067
+ path2: (string) | null;
5068
+ /**
5069
+ * Google ad strength, such as POOR, AVERAGE, GOOD or EXCELLENT.
5070
+ */
5071
+ adStrength: (string) | null;
5072
+ /**
5073
+ * Why the group is or is not serving, such as ELIGIBLE, PAUSED or NOT_ELIGIBLE.
5074
+ */
5075
+ primaryStatus: (string) | null;
5076
+ primaryStatusReasons: Array<(string)>;
4887
5077
  assets: Array<{
4888
5078
  resourceName: string;
4889
5079
  /**
@@ -4897,6 +5087,13 @@ export type GooglePmaxAssetGroup = {
4897
5087
  }>;
4898
5088
  };
4899
5089
 
5090
+ export type GooglePmaxAssetGroupDetail = GooglePmaxAssetGroup & {
5091
+ /**
5092
+ * The asset group's listing-group tree as flat nodes (retail campaigns). Empty when the group has none.
5093
+ */
5094
+ listingGroupFilters: Array<GoogleListingGroupFilterNode>;
5095
+ };
5096
+
4900
5097
  /**
4901
5098
  * Google Performance Max creative assets. At least one description must be 60 characters or fewer. Texts within each list must be distinct.
4902
5099
  */
@@ -5123,7 +5320,7 @@ export type kind = 'phone' | 'email';
5123
5320
 
5124
5321
  export type region = 'US' | 'GB';
5125
5322
 
5126
- export type status11 = 'ordering' | 'activating' | 'active' | 'suspended' | 'canceled' | 'failed';
5323
+ export type status12 = 'ordering' | 'activating' | 'active' | 'suspended' | 'canceled' | 'failed';
5127
5324
 
5128
5325
  /**
5129
5326
  * Attachment snapshot inside an edit-history entry.
@@ -5195,7 +5392,7 @@ export type InboxWebhookConversation = {
5195
5392
  contactId?: string;
5196
5393
  };
5197
5394
 
5198
- export type status12 = 'active' | 'archived';
5395
+ export type status13 = 'active' | 'archived';
5199
5396
 
5200
5397
  /**
5201
5398
  * The conversation object included in conversation lifecycle webhook payloads (conversation.started, conversation.control_changed).
@@ -6261,7 +6458,7 @@ export type MediaItem = {
6261
6458
  tiktokProcessed?: boolean;
6262
6459
  };
6263
6460
 
6264
- export type type7 = 'image' | 'video' | 'gif' | 'document';
6461
+ export type type8 = 'image' | 'video' | 'gif' | 'document';
6265
6462
 
6266
6463
  export type MediaUploadResponse = {
6267
6464
  files?: Array<UploadedFile>;
@@ -6388,7 +6585,7 @@ export type MetaCatalogProductInput = {
6388
6585
 
6389
6586
  export type availability = 'in stock' | 'out of stock' | 'preorder' | 'available for order' | 'discontinued' | 'pending';
6390
6587
 
6391
- export type condition = 'new' | 'refurbished' | 'used';
6588
+ export type condition2 = 'new' | 'refurbished' | 'used';
6392
6589
 
6393
6590
  export type visibility = 'published' | 'staging';
6394
6591
 
@@ -6782,7 +6979,7 @@ export type OwnedPhoneNumber = {
6782
6979
  }>;
6783
6980
  };
6784
6981
 
6785
- export type status13 = 'pending_payment' | 'pending_regulatory' | 'regulatory_declined' | 'provisioning' | 'verifying' | 'active' | 'suspended' | 'releasing' | 'released';
6982
+ export type status14 = 'pending_payment' | 'pending_regulatory' | 'regulatory_declined' | 'provisioning' | 'verifying' | 'active' | 'suspended' | 'releasing' | 'released';
6786
6983
 
6787
6984
  export type metaVerificationStatus = 'pending' | 'code_requested' | 'verified' | 'expired';
6788
6985
 
@@ -6907,7 +7104,7 @@ export type PlatformAnalytics = {
6907
7104
  errorMessage?: (string) | null;
6908
7105
  };
6909
7106
 
6910
- export type status14 = 'published' | 'failed';
7107
+ export type status15 = 'published' | 'failed';
6911
7108
 
6912
7109
  /**
6913
7110
  * Sync state of analytics for this platform
@@ -7036,7 +7233,7 @@ export type PortfolioBidStrategy = {
7036
7233
  targetRoas?: (number) | null;
7037
7234
  };
7038
7235
 
7039
- export type type8 = 'TARGET_CPA' | 'TARGET_ROAS' | 'MAXIMIZE_CONVERSIONS' | 'MAXIMIZE_CONVERSION_VALUE';
7236
+ export type type9 = 'TARGET_CPA' | 'TARGET_ROAS' | 'MAXIMIZE_CONVERSIONS' | 'MAXIMIZE_CONVERSION_VALUE';
7040
7237
 
7041
7238
  export type Post = {
7042
7239
  _id?: string;
@@ -7309,7 +7506,7 @@ export type Product = {
7309
7506
 
7310
7507
  export type platform8 = 'shopify';
7311
7508
 
7312
- export type status15 = 'active' | 'draft' | 'archived';
7509
+ export type status16 = 'active' | 'draft' | 'archived';
7313
7510
 
7314
7511
  export type ProductImage = {
7315
7512
  url?: string;
@@ -8576,7 +8773,7 @@ export type UploadedFile = {
8576
8773
  mimeType?: string;
8577
8774
  };
8578
8775
 
8579
- export type type9 = 'image' | 'video' | 'document';
8776
+ export type type10 = 'image' | 'video' | 'document';
8580
8777
 
8581
8778
  export type UploadTokenResponse = {
8582
8779
  token?: string;
@@ -8585,7 +8782,7 @@ export type UploadTokenResponse = {
8585
8782
  status?: 'pending' | 'completed' | 'expired';
8586
8783
  };
8587
8784
 
8588
- export type status16 = 'pending' | 'completed' | 'expired';
8785
+ export type status17 = 'pending' | 'completed' | 'expired';
8589
8786
 
8590
8787
  export type UploadTokenStatusResponse = {
8591
8788
  token?: string;
@@ -9084,9 +9281,9 @@ export type Verification = {
9084
9281
  resend?: boolean;
9085
9282
  };
9086
9283
 
9087
- export type status17 = 'pending' | 'approved' | 'expired' | 'max_attempts_reached' | 'canceled' | 'delivery_failed';
9284
+ export type status18 = 'pending' | 'approved' | 'expired' | 'max_attempts_reached' | 'canceled' | 'delivery_failed';
9088
9285
 
9089
- export type channel3 = 'sms';
9286
+ export type channel4 = 'sms';
9090
9287
 
9091
9288
  /**
9092
9289
  * Individual webhook configuration for receiving real-time notifications
@@ -9211,7 +9408,7 @@ export type WebhookLog = {
9211
9408
  /**
9212
9409
  * Delivery outcome
9213
9410
  */
9214
- export type status18 = 'success' | 'failed';
9411
+ export type status19 = 'success' | 'failed';
9215
9412
 
9216
9413
  /**
9217
9414
  * Webhook payload for `account.ads.initial_sync_completed` events.
@@ -9323,7 +9520,7 @@ export type event = 'account.ads.initial_sync_completed';
9323
9520
  /**
9324
9521
  * Overall outcome of the initial sync.
9325
9522
  */
9326
- export type status19 = 'success' | 'failure';
9523
+ export type status20 = 'success' | 'failure';
9327
9524
 
9328
9525
  /**
9329
9526
  * Stable category for UX branching. New values may be added; existing ones are
@@ -9533,7 +9730,7 @@ export type event4 = 'ad.status_changed';
9533
9730
  /**
9534
9731
  * Hierarchy level the status applies to. Mirrors Meta's `level`. Creative-level events are not forwarded.
9535
9732
  */
9536
- export type level = 'CAMPAIGN' | 'AD_SET' | 'AD';
9733
+ export type level2 = 'CAMPAIGN' | 'AD_SET' | 'AD';
9537
9734
 
9538
9735
  /**
9539
9736
  * Webhook payload for `analytics.synced`. Fired once per connected account each
@@ -11276,7 +11473,7 @@ export type event22 = 'post.platform.published' | 'post.platform.failed' | 'post
11276
11473
  /**
11277
11474
  * Terminal status this event fires on. Matches the event suffix.
11278
11475
  */
11279
- export type status20 = 'published' | 'failed' | 'deleted';
11476
+ export type status21 = 'published' | 'failed' | 'deleted';
11280
11477
 
11281
11478
  /**
11282
11479
  * Webhook payload for reaction received events (WhatsApp, Telegram, Slack, Instagram, Facebook Messenger, TikTok)
@@ -11542,7 +11739,7 @@ export type platform15 = 'whatsapp';
11542
11739
  /**
11543
11740
  * Normalized from Meta's `decision` (REJECTED -> DECLINED, DEFERRED -> PENDING_REVIEW; the review is still open on DEFERRED, not a rejection).
11544
11741
  */
11545
- export type status21 = 'APPROVED' | 'DECLINED' | 'PENDING_REVIEW';
11742
+ export type status22 = 'APPROVED' | 'DECLINED' | 'PENDING_REVIEW';
11546
11743
 
11547
11744
  /**
11548
11745
  * Webhook payload for the `whatsapp.template.category_updated` event.
@@ -11691,7 +11888,7 @@ export type event30 = 'whatsapp.template.status_updated';
11691
11888
  * request before the template is actually removed.
11692
11889
  *
11693
11890
  */
11694
- export type status22 = 'APPROVED' | 'REJECTED' | 'PENDING' | 'PAUSED' | 'DISABLED' | 'IN_APPEAL' | 'PENDING_DELETION';
11891
+ export type status23 = 'APPROVED' | 'REJECTED' | 'PENDING' | 'PAUSED' | 'DISABLED' | 'IN_APPEAL' | 'PENDING_DELETION';
11695
11892
 
11696
11893
  export type WhatsAppBodyComponent = {
11697
11894
  type: 'body';
@@ -11845,7 +12042,7 @@ export type WhatsAppSandboxSession = {
11845
12042
  * list responses.
11846
12043
  *
11847
12044
  */
11848
- export type status23 = 'pending' | 'active';
12045
+ export type status24 = 'pending' | 'active';
11849
12046
 
11850
12047
  export type WhatsAppTemplateButton = {
11851
12048
  type: 'quick_reply' | 'url' | 'phone_number' | 'otp' | 'copy_code' | 'flow' | 'mpm' | 'catalog';
@@ -11879,7 +12076,7 @@ export type WhatsAppTemplateButton = {
11879
12076
  navigate_screen?: string;
11880
12077
  };
11881
12078
 
11882
- export type type10 = 'quick_reply' | 'url' | 'phone_number' | 'otp' | 'copy_code' | 'flow' | 'mpm' | 'catalog';
12079
+ export type type11 = 'quick_reply' | 'url' | 'phone_number' | 'otp' | 'copy_code' | 'flow' | 'mpm' | 'catalog';
11883
12080
 
11884
12081
  /**
11885
12082
  * Required when type is otp
@@ -11921,7 +12118,7 @@ export type WhatsAppTemplateLookupError = {
11921
12118
  };
11922
12119
  };
11923
12120
 
11924
- export type type11 = 'platform_error';
12121
+ export type type12 = 'platform_error';
11925
12122
 
11926
12123
  export type code = 'platform_api_error';
11927
12124
 
@@ -12003,7 +12200,7 @@ export type WorkflowExecutionEvent = {
12003
12200
 
12004
12201
  export type action2 = 'execution_started' | 'execution_completed' | 'execution_exited' | 'execution_paused' | 'execution_resumed' | 'node_started' | 'node_completed' | 'node_failed' | 'node_skipped';
12005
12202
 
12006
- export type status24 = 'success' | 'failed' | 'pending';
12203
+ export type status25 = 'success' | 'failed' | 'pending';
12007
12204
 
12008
12205
  /**
12009
12206
  * A node in a workflow graph. `config` shape depends on `type`.
@@ -12080,7 +12277,7 @@ export type WorkflowNode = {
12080
12277
  * integrations (webhook, ai, handoff, start_call).
12081
12278
  *
12082
12279
  */
12083
- export type type12 = 'trigger' | 'send_message' | 'wait_for_reply' | 'condition' | 'set_variable' | 'delay' | 'webhook' | 'ai' | 'handoff' | 'start_call' | 'a_b_split' | 'set_field' | 'enroll_sequence' | 'add_tag' | 'remove_tag' | 'end';
12280
+ export type type13 = 'trigger' | 'send_message' | 'wait_for_reply' | 'condition' | 'set_variable' | 'delay' | 'webhook' | 'ai' | 'handoff' | 'start_call' | 'a_b_split' | 'set_field' | 'enroll_sequence' | 'add_tag' | 'remove_tag' | 'end';
12084
12281
 
12085
12282
  /**
12086
12283
  * A single X API operation with its per-call price and the Zernio platform methods that trigger it.
@@ -12216,7 +12413,7 @@ export type XArticleBlock = {
12216
12413
  entity_ranges?: Array<XArticleEntityRange>;
12217
12414
  };
12218
12415
 
12219
- export type type13 = 'unstyled' | 'header-one' | 'header-two' | 'header-three' | 'unordered-list-item' | 'ordered-list-item' | 'blockquote' | 'atomic';
12416
+ export type type14 = 'unstyled' | 'header-one' | 'header-two' | 'header-three' | 'unordered-list-item' | 'ordered-list-item' | 'blockquote' | 'atomic';
12220
12417
 
12221
12418
  /**
12222
12419
  * X's snake_case content-state shape. Standard DraftJS camelCase fields such as entityMap, inlineStyleRanges, and entityRanges are rejected.
@@ -12295,7 +12492,7 @@ export type XArticleEntity = {
12295
12492
 
12296
12493
  export type mutability = 'immutable' | 'mutable' | 'segmented';
12297
12494
 
12298
- export type type14 = 'divider' | 'latex';
12495
+ export type type15 = 'divider' | 'latex';
12299
12496
 
12300
12497
  /**
12301
12498
  * The referenced entity must exist, and offset plus length must not exceed the containing block's text length.
@@ -39020,40 +39217,229 @@ export type ListMetaBusinessesError = (unknown | {
39020
39217
  export type ListAdLabelsData = {
39021
39218
  query: {
39022
39219
  /**
39023
- * Zernio SocialAccount id (posting or ads variant) used to resolve the Meta token.
39220
+ * Zernio SocialAccount id. For Meta, the posting or ads variant used to resolve the token.
39024
39221
  */
39025
39222
  accountId: string;
39026
39223
  /**
39027
- * Meta ad account id (act_<n>).
39224
+ * Meta ad account id (act_<n>), or the Google Ads customer id (digits only).
39028
39225
  */
39029
- adAccountId: string;
39226
+ adAccountId?: string;
39030
39227
  /**
39031
- * Cursor from paging.after of the previous page.
39228
+ * Meta only. Cursor from paging.after of the previous page.
39032
39229
  */
39033
39230
  after?: string;
39034
39231
  /**
39035
- * Rows per page
39232
+ * Google only. Alias of adAccountId, kept for existing callers.
39233
+ * @deprecated
39234
+ */
39235
+ customerId?: string;
39236
+ /**
39237
+ * Meta only. Rows per page.
39036
39238
  */
39037
39239
  limit?: number;
39038
39240
  };
39039
39241
  };
39040
39242
 
39041
39243
  export type ListAdLabelsResponse = ({
39244
+ /**
39245
+ * Meta act_<n>, or the resolved Google customer id
39246
+ */
39042
39247
  adAccountId?: string;
39043
- data?: Array<{
39044
- [key: string]: unknown;
39045
- }>;
39248
+ data?: Array<(GoogleAdLabel | {
39249
+ [key: string]: unknown;
39250
+ })>;
39046
39251
  paging?: {
39047
39252
  /**
39048
- * Cursor for the next page; null when exhausted.
39253
+ * Cursor for the next page; null when exhausted (always null on Google).
39049
39254
  */
39050
39255
  after?: (string) | null;
39051
39256
  };
39257
+ /**
39258
+ * Google only. When the served list was fetched from Google.
39259
+ */
39260
+ cachedAt?: (string) | null;
39261
+ /**
39262
+ * Google only. True when Google quota was exhausted and the last cached list was served.
39263
+ */
39264
+ stale?: boolean;
39052
39265
  });
39053
39266
 
39054
- export type ListAdLabelsError = (unknown | {
39267
+ export type ListAdLabelsError = (ErrorResponse | {
39055
39268
  error?: string;
39056
- } | ErrorResponse);
39269
+ } | unknown);
39270
+
39271
+ export type CreateAdLabelData = {
39272
+ body: {
39273
+ /**
39274
+ * Zernio SocialAccount id (Google Ads)
39275
+ */
39276
+ accountId: string;
39277
+ /**
39278
+ * Google customer id. Required when the connection has multiple customers.
39279
+ */
39280
+ adAccountId?: string;
39281
+ /**
39282
+ * Alias of adAccountId
39283
+ * @deprecated
39284
+ */
39285
+ customerId?: string;
39286
+ /**
39287
+ * Trimmed before sending.
39288
+ */
39289
+ name: string;
39290
+ /**
39291
+ * #RRGGBB. Google picks a color when omitted.
39292
+ */
39293
+ backgroundColor?: string;
39294
+ description?: string;
39295
+ };
39296
+ };
39297
+
39298
+ export type CreateAdLabelResponse = ({
39299
+ customerId?: string;
39300
+ /**
39301
+ * Google label id
39302
+ */
39303
+ id?: string;
39304
+ /**
39305
+ * customers/{customerId}/labels/{id}
39306
+ */
39307
+ resourceName?: string;
39308
+ });
39309
+
39310
+ export type CreateAdLabelError = (ErrorResponse | {
39311
+ error?: string;
39312
+ } | unknown);
39313
+
39314
+ export type UpdateAdLabelData = {
39315
+ body: {
39316
+ /**
39317
+ * Zernio SocialAccount id (Google Ads)
39318
+ */
39319
+ accountId: string;
39320
+ /**
39321
+ * Google customer id. Required when the connection has multiple customers.
39322
+ */
39323
+ adAccountId?: string;
39324
+ /**
39325
+ * Alias of adAccountId
39326
+ * @deprecated
39327
+ */
39328
+ customerId?: string;
39329
+ name?: string;
39330
+ backgroundColor?: string;
39331
+ /**
39332
+ * Send "" to clear it.
39333
+ */
39334
+ description?: string;
39335
+ };
39336
+ path: {
39337
+ /**
39338
+ * Google label id
39339
+ */
39340
+ labelId: string;
39341
+ };
39342
+ };
39343
+
39344
+ export type UpdateAdLabelResponse = ({
39345
+ customerId?: string;
39346
+ label?: GoogleAdLabel;
39347
+ });
39348
+
39349
+ export type UpdateAdLabelError = (ErrorResponse | {
39350
+ error?: string;
39351
+ } | unknown);
39352
+
39353
+ export type RemoveAdLabelData = {
39354
+ path: {
39355
+ /**
39356
+ * Google label id
39357
+ */
39358
+ labelId: string;
39359
+ };
39360
+ query: {
39361
+ /**
39362
+ * Zernio SocialAccount id (Google Ads)
39363
+ */
39364
+ accountId: string;
39365
+ /**
39366
+ * Google customer id. Required when the connection has multiple customers.
39367
+ */
39368
+ adAccountId?: string;
39369
+ /**
39370
+ * Alias of adAccountId
39371
+ * @deprecated
39372
+ */
39373
+ customerId?: string;
39374
+ };
39375
+ };
39376
+
39377
+ export type RemoveAdLabelResponse = ({
39378
+ customerId?: string;
39379
+ labelId?: string;
39380
+ /**
39381
+ * Always true on success
39382
+ */
39383
+ removed?: boolean;
39384
+ });
39385
+
39386
+ export type RemoveAdLabelError = (ErrorResponse | {
39387
+ error?: string;
39388
+ } | unknown);
39389
+
39390
+ export type AttachAdLabelData = {
39391
+ body: GoogleAdLabelAssignments;
39392
+ path: {
39393
+ /**
39394
+ * Google label id
39395
+ */
39396
+ labelId: string;
39397
+ };
39398
+ };
39399
+
39400
+ export type AttachAdLabelResponse = ({
39401
+ customerId?: string;
39402
+ labelId?: string;
39403
+ /**
39404
+ * Links created by this call
39405
+ */
39406
+ attached?: number;
39407
+ /**
39408
+ * Targets that already carried the label
39409
+ */
39410
+ unchanged?: number;
39411
+ });
39412
+
39413
+ export type AttachAdLabelError = (ErrorResponse | {
39414
+ error?: string;
39415
+ } | unknown);
39416
+
39417
+ export type DetachAdLabelData = {
39418
+ body: GoogleAdLabelAssignments;
39419
+ path: {
39420
+ /**
39421
+ * Google label id
39422
+ */
39423
+ labelId: string;
39424
+ };
39425
+ };
39426
+
39427
+ export type DetachAdLabelResponse = ({
39428
+ customerId?: string;
39429
+ labelId?: string;
39430
+ /**
39431
+ * Links removed by this call
39432
+ */
39433
+ detached?: number;
39434
+ /**
39435
+ * Targets that did not carry the label
39436
+ */
39437
+ unchanged?: number;
39438
+ });
39439
+
39440
+ export type DetachAdLabelError = (ErrorResponse | {
39441
+ error?: string;
39442
+ } | unknown);
39057
39443
 
39058
39444
  export type ListHighDemandPeriodsData = {
39059
39445
  query: {
@@ -41073,6 +41459,185 @@ export type ListGoogleAssetGroupsError = (ErrorResponse | {
41073
41459
  error?: string;
41074
41460
  } | unknown);
41075
41461
 
41462
+ export type CreateGoogleAssetGroupData = {
41463
+ body: {
41464
+ /**
41465
+ * Unique within the campaign.
41466
+ */
41467
+ name: string;
41468
+ finalUrls: Array<(string)>;
41469
+ finalMobileUrls?: Array<(string)>;
41470
+ path1?: string;
41471
+ /**
41472
+ * Requires path1.
41473
+ */
41474
+ path2?: string;
41475
+ status?: 'ENABLED' | 'PAUSED';
41476
+ assets?: Array<GoogleAssetGroupAssetLink>;
41477
+ listingGroupFilter?: GoogleListingGroupTree;
41478
+ validateOnly?: boolean;
41479
+ };
41480
+ path: {
41481
+ /**
41482
+ * Google Ads campaign id.
41483
+ */
41484
+ campaignId: string;
41485
+ };
41486
+ };
41487
+
41488
+ export type CreateGoogleAssetGroupResponse = ({
41489
+ validateOnly?: boolean;
41490
+ message?: string;
41491
+ } | {
41492
+ assetGroup: {
41493
+ id: string;
41494
+ resourceName: string;
41495
+ campaignId: string;
41496
+ };
41497
+ });
41498
+
41499
+ export type CreateGoogleAssetGroupError = (ErrorResponse | {
41500
+ error?: string;
41501
+ } | unknown);
41502
+
41503
+ export type GetGoogleAssetGroupData = {
41504
+ path: {
41505
+ /**
41506
+ * Google asset group id.
41507
+ */
41508
+ assetGroupId: string;
41509
+ /**
41510
+ * Google Ads campaign id.
41511
+ */
41512
+ campaignId: string;
41513
+ };
41514
+ };
41515
+
41516
+ export type GetGoogleAssetGroupResponse = ({
41517
+ assetGroup: GooglePmaxAssetGroupDetail;
41518
+ cachedAt: (string) | null;
41519
+ stale: boolean;
41520
+ });
41521
+
41522
+ export type GetGoogleAssetGroupError = (ErrorResponse | {
41523
+ error?: string;
41524
+ } | unknown);
41525
+
41526
+ export type UpdateGoogleAssetGroupData = {
41527
+ body: {
41528
+ name?: string;
41529
+ status?: 'ENABLED' | 'PAUSED';
41530
+ finalUrls?: Array<(string)>;
41531
+ finalMobileUrls?: Array<(string)>;
41532
+ path1?: (string) | null;
41533
+ path2?: (string) | null;
41534
+ validateOnly?: boolean;
41535
+ };
41536
+ path: {
41537
+ /**
41538
+ * Google asset group id.
41539
+ */
41540
+ assetGroupId: string;
41541
+ /**
41542
+ * Google Ads campaign id.
41543
+ */
41544
+ campaignId: string;
41545
+ };
41546
+ };
41547
+
41548
+ export type UpdateGoogleAssetGroupResponse = ({
41549
+ assetGroupId?: string;
41550
+ updated?: Array<(string)>;
41551
+ validateOnly?: boolean;
41552
+ });
41553
+
41554
+ export type UpdateGoogleAssetGroupError = (ErrorResponse | {
41555
+ error?: string;
41556
+ } | unknown);
41557
+
41558
+ export type RemoveGoogleAssetGroupData = {
41559
+ path: {
41560
+ assetGroupId: string;
41561
+ campaignId: string;
41562
+ };
41563
+ query?: {
41564
+ validateOnly?: boolean;
41565
+ };
41566
+ };
41567
+
41568
+ export type RemoveGoogleAssetGroupResponse = ({
41569
+ assetGroupId?: string;
41570
+ removed?: boolean;
41571
+ validateOnly?: boolean;
41572
+ });
41573
+
41574
+ export type RemoveGoogleAssetGroupError = (ErrorResponse | {
41575
+ error?: string;
41576
+ } | unknown);
41577
+
41578
+ export type EditGoogleAssetGroupAssetsData = {
41579
+ body: {
41580
+ link?: Array<GoogleAssetGroupAssetLink>;
41581
+ unlink?: Array<GoogleAssetGroupAssetUnlink>;
41582
+ validateOnly?: boolean;
41583
+ };
41584
+ path: {
41585
+ /**
41586
+ * Google asset group id.
41587
+ */
41588
+ assetGroupId: string;
41589
+ /**
41590
+ * Google Ads campaign id.
41591
+ */
41592
+ campaignId: string;
41593
+ };
41594
+ };
41595
+
41596
+ export type EditGoogleAssetGroupAssetsResponse = ({
41597
+ assetGroupId?: string;
41598
+ linked?: number;
41599
+ unlinked?: number;
41600
+ validateOnly?: boolean;
41601
+ });
41602
+
41603
+ export type EditGoogleAssetGroupAssetsError = (ErrorResponse | {
41604
+ error?: string;
41605
+ } | unknown);
41606
+
41607
+ export type ReplaceGoogleListingGroupFiltersData = {
41608
+ body: {
41609
+ tree: GoogleListingGroupTree;
41610
+ validateOnly?: boolean;
41611
+ };
41612
+ path: {
41613
+ /**
41614
+ * Google asset group id.
41615
+ */
41616
+ assetGroupId: string;
41617
+ /**
41618
+ * Google Ads campaign id.
41619
+ */
41620
+ campaignId: string;
41621
+ };
41622
+ };
41623
+
41624
+ export type ReplaceGoogleListingGroupFiltersResponse = ({
41625
+ assetGroupId?: string;
41626
+ /**
41627
+ * Nodes removed from the previous tree.
41628
+ */
41629
+ removed?: number;
41630
+ /**
41631
+ * Nodes in the new tree.
41632
+ */
41633
+ created?: number;
41634
+ validateOnly?: boolean;
41635
+ });
41636
+
41637
+ export type ReplaceGoogleListingGroupFiltersError = (ErrorResponse | {
41638
+ error?: string;
41639
+ } | unknown);
41640
+
41076
41641
  export type CreateStandaloneAdData = {
41077
41642
  body: {
41078
41643
  accountId: string;