universal-mcp-applications 0.1.32__py3-none-any.whl → 0.1.36rc2__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (105) hide show
  1. universal_mcp/applications/ahrefs/app.py +52 -198
  2. universal_mcp/applications/airtable/app.py +23 -122
  3. universal_mcp/applications/apollo/app.py +111 -464
  4. universal_mcp/applications/asana/app.py +417 -1567
  5. universal_mcp/applications/aws_s3/app.py +36 -103
  6. universal_mcp/applications/bill/app.py +546 -1957
  7. universal_mcp/applications/box/app.py +1068 -3981
  8. universal_mcp/applications/braze/app.py +364 -1430
  9. universal_mcp/applications/browser_use/app.py +2 -8
  10. universal_mcp/applications/cal_com_v2/app.py +207 -625
  11. universal_mcp/applications/calendly/app.py +61 -200
  12. universal_mcp/applications/canva/app.py +45 -110
  13. universal_mcp/applications/clickup/app.py +207 -674
  14. universal_mcp/applications/coda/app.py +146 -426
  15. universal_mcp/applications/confluence/app.py +310 -1098
  16. universal_mcp/applications/contentful/app.py +36 -151
  17. universal_mcp/applications/crustdata/app.py +28 -107
  18. universal_mcp/applications/dialpad/app.py +283 -756
  19. universal_mcp/applications/digitalocean/app.py +1766 -5777
  20. universal_mcp/applications/domain_checker/app.py +3 -54
  21. universal_mcp/applications/e2b/app.py +14 -64
  22. universal_mcp/applications/elevenlabs/app.py +9 -47
  23. universal_mcp/applications/exa/app.py +6 -17
  24. universal_mcp/applications/falai/app.py +24 -101
  25. universal_mcp/applications/figma/app.py +53 -137
  26. universal_mcp/applications/file_system/app.py +2 -13
  27. universal_mcp/applications/firecrawl/app.py +51 -152
  28. universal_mcp/applications/fireflies/app.py +59 -281
  29. universal_mcp/applications/fpl/app.py +91 -528
  30. universal_mcp/applications/fpl/utils/fixtures.py +15 -49
  31. universal_mcp/applications/fpl/utils/helper.py +25 -89
  32. universal_mcp/applications/fpl/utils/league_utils.py +20 -64
  33. universal_mcp/applications/ghost_content/app.py +52 -161
  34. universal_mcp/applications/github/app.py +19 -56
  35. universal_mcp/applications/gong/app.py +88 -248
  36. universal_mcp/applications/google_calendar/app.py +16 -68
  37. universal_mcp/applications/google_docs/app.py +85 -189
  38. universal_mcp/applications/google_drive/app.py +141 -463
  39. universal_mcp/applications/google_gemini/app.py +12 -64
  40. universal_mcp/applications/google_mail/app.py +28 -157
  41. universal_mcp/applications/google_searchconsole/app.py +15 -48
  42. universal_mcp/applications/google_sheet/app.py +100 -581
  43. universal_mcp/applications/google_sheet/helper.py +10 -37
  44. universal_mcp/applications/hashnode/app.py +57 -269
  45. universal_mcp/applications/heygen/app.py +44 -122
  46. universal_mcp/applications/http_tools/app.py +10 -32
  47. universal_mcp/applications/hubspot/api_segments/crm_api.py +460 -1573
  48. universal_mcp/applications/hubspot/api_segments/marketing_api.py +74 -262
  49. universal_mcp/applications/hubspot/app.py +23 -87
  50. universal_mcp/applications/jira/app.py +2071 -7986
  51. universal_mcp/applications/klaviyo/app.py +494 -1376
  52. universal_mcp/applications/linkedin/README.md +9 -2
  53. universal_mcp/applications/linkedin/app.py +240 -181
  54. universal_mcp/applications/mailchimp/app.py +450 -1605
  55. universal_mcp/applications/markitdown/app.py +8 -20
  56. universal_mcp/applications/miro/app.py +217 -699
  57. universal_mcp/applications/ms_teams/app.py +64 -186
  58. universal_mcp/applications/neon/app.py +86 -192
  59. universal_mcp/applications/notion/app.py +21 -36
  60. universal_mcp/applications/onedrive/app.py +16 -38
  61. universal_mcp/applications/openai/app.py +42 -165
  62. universal_mcp/applications/outlook/app.py +24 -84
  63. universal_mcp/applications/perplexity/app.py +4 -19
  64. universal_mcp/applications/pipedrive/app.py +832 -3142
  65. universal_mcp/applications/posthog/app.py +163 -432
  66. universal_mcp/applications/reddit/app.py +40 -139
  67. universal_mcp/applications/resend/app.py +41 -107
  68. universal_mcp/applications/retell/app.py +14 -41
  69. universal_mcp/applications/rocketlane/app.py +221 -934
  70. universal_mcp/applications/scraper/README.md +7 -4
  71. universal_mcp/applications/scraper/app.py +50 -109
  72. universal_mcp/applications/semanticscholar/app.py +22 -64
  73. universal_mcp/applications/semrush/app.py +43 -77
  74. universal_mcp/applications/sendgrid/app.py +512 -1262
  75. universal_mcp/applications/sentry/app.py +271 -906
  76. universal_mcp/applications/serpapi/app.py +40 -143
  77. universal_mcp/applications/sharepoint/app.py +17 -39
  78. universal_mcp/applications/shopify/app.py +1551 -4287
  79. universal_mcp/applications/shortcut/app.py +155 -417
  80. universal_mcp/applications/slack/app.py +33 -115
  81. universal_mcp/applications/spotify/app.py +126 -325
  82. universal_mcp/applications/supabase/app.py +104 -213
  83. universal_mcp/applications/tavily/app.py +1 -1
  84. universal_mcp/applications/trello/app.py +693 -2656
  85. universal_mcp/applications/twilio/app.py +14 -50
  86. universal_mcp/applications/twitter/api_segments/compliance_api.py +4 -14
  87. universal_mcp/applications/twitter/api_segments/dm_conversations_api.py +6 -18
  88. universal_mcp/applications/twitter/api_segments/likes_api.py +1 -3
  89. universal_mcp/applications/twitter/api_segments/lists_api.py +5 -15
  90. universal_mcp/applications/twitter/api_segments/trends_api.py +1 -3
  91. universal_mcp/applications/twitter/api_segments/tweets_api.py +9 -31
  92. universal_mcp/applications/twitter/api_segments/usage_api.py +1 -5
  93. universal_mcp/applications/twitter/api_segments/users_api.py +14 -42
  94. universal_mcp/applications/whatsapp/app.py +35 -186
  95. universal_mcp/applications/whatsapp/audio.py +2 -6
  96. universal_mcp/applications/whatsapp/whatsapp.py +17 -51
  97. universal_mcp/applications/whatsapp_business/app.py +70 -283
  98. universal_mcp/applications/wrike/app.py +45 -118
  99. universal_mcp/applications/yahoo_finance/app.py +19 -65
  100. universal_mcp/applications/youtube/app.py +75 -261
  101. universal_mcp/applications/zenquotes/app.py +2 -2
  102. {universal_mcp_applications-0.1.32.dist-info → universal_mcp_applications-0.1.36rc2.dist-info}/METADATA +2 -2
  103. {universal_mcp_applications-0.1.32.dist-info → universal_mcp_applications-0.1.36rc2.dist-info}/RECORD +105 -105
  104. {universal_mcp_applications-0.1.32.dist-info → universal_mcp_applications-0.1.36rc2.dist-info}/WHEEL +0 -0
  105. {universal_mcp_applications-0.1.32.dist-info → universal_mcp_applications-0.1.36rc2.dist-info}/licenses/LICENSE +0 -0
@@ -1,5 +1,4 @@
1
1
  from typing import Any
2
-
3
2
  from universal_mcp.applications.application import APIApplication
4
3
  from universal_mcp.integrations import Integration
5
4
 
@@ -17,13 +16,9 @@ class KlaviyoApp(APIApplication):
17
16
  return credentials["headers"]
18
17
  if "access_token" not in credentials:
19
18
  raise ValueError("Access token not found in KlaviyoApp credentials")
20
- return {
21
- "Authorization": f"Bearer {credentials['access_token']}",
22
- "Accept": "application/json",
23
- "revision": "2024-07-15",
24
- }
19
+ return {"Authorization": f"Bearer {credentials['access_token']}", "Accept": "application/json", "revision": "2024-07-15"}
25
20
 
26
- def create_client_review(self, company_id=None, data=None) -> Any:
21
+ async def create_client_review(self, company_id=None, data=None) -> Any:
27
22
  """
28
23
  Creates a new client review, requiring a company ID as a query parameter and a revision in the request header.
29
24
 
@@ -86,9 +81,7 @@ class KlaviyoApp(APIApplication):
86
81
  Tags:
87
82
  Beta APIs
88
83
  """
89
- request_body = {
90
- "data": data,
91
- }
84
+ request_body = {"data": data}
92
85
  request_body = {k: v for k, v in request_body.items() if v is not None}
93
86
  url = f"{self.base_url}/client/reviews"
94
87
  query_params = {k: v for k, v in [("company_id", company_id)] if v is not None}
@@ -96,7 +89,7 @@ class KlaviyoApp(APIApplication):
96
89
  response.raise_for_status()
97
90
  return response.json()
98
91
 
99
- def get_accounts(self, fields_account=None) -> dict[str, Any]:
92
+ async def get_accounts(self, fields_account=None) -> dict[str, Any]:
100
93
  """
101
94
  Retrieves account information using the GET method, allowing optional filtering by specific account fields and requiring a revision header, returning a successful response with the requested data if available.
102
95
 
@@ -110,14 +103,12 @@ class KlaviyoApp(APIApplication):
110
103
  Accounts, important
111
104
  """
112
105
  url = f"{self.base_url}/api/accounts"
113
- query_params = {
114
- k: v for k, v in [("fields[account]", fields_account)] if v is not None
115
- }
106
+ query_params = {k: v for k, v in [("fields[account]", fields_account)] if v is not None}
116
107
  response = self._get(url, params=query_params)
117
108
  response.raise_for_status()
118
109
  return response.json()
119
110
 
120
- def get_account(self, id, fields_account=None) -> dict[str, Any]:
111
+ async def get_account(self, id, fields_account=None) -> dict[str, Any]:
121
112
  """
122
113
  Retrieves detailed information about a specific account identified by `{id}` with optional filtering by `fields[account]` and version control via the `revision` header.
123
114
 
@@ -134,22 +125,13 @@ class KlaviyoApp(APIApplication):
134
125
  if id is None:
135
126
  raise ValueError("Missing required parameter 'id'")
136
127
  url = f"{self.base_url}/api/accounts/{id}"
137
- query_params = {
138
- k: v for k, v in [("fields[account]", fields_account)] if v is not None
139
- }
128
+ query_params = {k: v for k, v in [("fields[account]", fields_account)] if v is not None}
140
129
  response = self._get(url, params=query_params)
141
130
  response.raise_for_status()
142
131
  return response.json()
143
132
 
144
- def get_campaigns(
145
- self,
146
- fields_campaign_message=None,
147
- fields_campaign=None,
148
- fields_tag=None,
149
- filter=None,
150
- include=None,
151
- page_cursor=None,
152
- sort=None,
133
+ async def get_campaigns(
134
+ self, fields_campaign_message=None, fields_campaign=None, fields_tag=None, filter=None, include=None, page_cursor=None, sort=None
153
135
  ) -> dict[str, Any]:
154
136
  """
155
137
  Retrieve a list of campaigns using optional filtering, sorting, and inclusion parameters, with the option to specify fields for campaign messages, campaigns, and tags.
@@ -187,7 +169,7 @@ class KlaviyoApp(APIApplication):
187
169
  response.raise_for_status()
188
170
  return response.json()
189
171
 
190
- def create_campaign(self, data=None) -> dict[str, Any]:
172
+ async def create_campaign(self, data=None) -> dict[str, Any]:
191
173
  """
192
174
  Creates a new campaign using specified parameters, returning appropriate status codes for success (201), client errors (400), or server issues (500).
193
175
 
@@ -303,9 +285,7 @@ class KlaviyoApp(APIApplication):
303
285
  Tags:
304
286
  Campaigns, important
305
287
  """
306
- request_body = {
307
- "data": data,
308
- }
288
+ request_body = {"data": data}
309
289
  request_body = {k: v for k, v in request_body.items() if v is not None}
310
290
  url = f"{self.base_url}/api/campaigns"
311
291
  query_params = {}
@@ -313,14 +293,7 @@ class KlaviyoApp(APIApplication):
313
293
  response.raise_for_status()
314
294
  return response.json()
315
295
 
316
- def get_campaign(
317
- self,
318
- id,
319
- fields_campaign_message=None,
320
- fields_campaign=None,
321
- fields_tag=None,
322
- include=None,
323
- ) -> dict[str, Any]:
296
+ async def get_campaign(self, id, fields_campaign_message=None, fields_campaign=None, fields_tag=None, include=None) -> dict[str, Any]:
324
297
  """
325
298
  Retrieves detailed information about a campaign by its ID, allowing for selective field inclusion and revision specification through query parameters and headers.
326
299
 
@@ -354,7 +327,7 @@ class KlaviyoApp(APIApplication):
354
327
  response.raise_for_status()
355
328
  return response.json()
356
329
 
357
- def delete_campaign(self, id) -> Any:
330
+ async def delete_campaign(self, id) -> Any:
358
331
  """
359
332
  Deletes a specific campaign by its ID, requiring a revision header and returning 204 No Content on success, with 400 and 500 for client and server errors, respectively.
360
333
 
@@ -375,7 +348,7 @@ class KlaviyoApp(APIApplication):
375
348
  response.raise_for_status()
376
349
  return response.json()
377
350
 
378
- def update_campaign(self, id, data=None) -> dict[str, Any]:
351
+ async def update_campaign(self, id, data=None) -> dict[str, Any]:
379
352
  """
380
353
  The **PATCH** operation at **"/api/campaigns/{id}"** partially updates a campaign resource identified by `{id}`, with the revision specified in the header, returning a successful response if the update is applied correctly.
381
354
 
@@ -439,9 +412,7 @@ class KlaviyoApp(APIApplication):
439
412
  """
440
413
  if id is None:
441
414
  raise ValueError("Missing required parameter 'id'")
442
- request_body = {
443
- "data": data,
444
- }
415
+ request_body = {"data": data}
445
416
  request_body = {k: v for k, v in request_body.items() if v is not None}
446
417
  url = f"{self.base_url}/api/campaigns/{id}"
447
418
  query_params = {}
@@ -449,9 +420,7 @@ class KlaviyoApp(APIApplication):
449
420
  response.raise_for_status()
450
421
  return response.json()
451
422
 
452
- def get_campaign_recipient_estimation(
453
- self, id, fields_campaign_recipient_estimation=None
454
- ) -> dict[str, Any]:
423
+ async def get_campaign_recipient_estimation(self, id, fields_campaign_recipient_estimation=None) -> dict[str, Any]:
455
424
  """
456
425
  Retrieves a campaign recipient estimation by ID with optional fields filtering via query parameters and revision tracking through headers.
457
426
 
@@ -468,21 +437,12 @@ class KlaviyoApp(APIApplication):
468
437
  if id is None:
469
438
  raise ValueError("Missing required parameter 'id'")
470
439
  url = f"{self.base_url}/api/campaign-recipient-estimations/{id}"
471
- query_params = {
472
- k: v
473
- for k, v in [
474
- (
475
- "fields[campaign-recipient-estimation]",
476
- fields_campaign_recipient_estimation,
477
- )
478
- ]
479
- if v is not None
480
- }
440
+ query_params = {k: v for k, v in [("fields[campaign-recipient-estimation]", fields_campaign_recipient_estimation)] if v is not None}
481
441
  response = self._get(url, params=query_params)
482
442
  response.raise_for_status()
483
443
  return response.json()
484
444
 
485
- def create_campaign_clone(self, data=None) -> dict[str, Any]:
445
+ async def create_campaign_clone(self, data=None) -> dict[str, Any]:
486
446
  """
487
447
  Clones a campaign, accepting a revision header and returning appropriate status codes (201 Created, 400 Bad Request, 500 Internal Server Error).
488
448
 
@@ -507,9 +467,7 @@ class KlaviyoApp(APIApplication):
507
467
  Tags:
508
468
  Campaigns, Campaigns1
509
469
  """
510
- request_body = {
511
- "data": data,
512
- }
470
+ request_body = {"data": data}
513
471
  request_body = {k: v for k, v in request_body.items() if v is not None}
514
472
  url = f"{self.base_url}/api/campaign-clone"
515
473
  query_params = {}
@@ -517,7 +475,7 @@ class KlaviyoApp(APIApplication):
517
475
  response.raise_for_status()
518
476
  return response.json()
519
477
 
520
- def get_tags_for_campaign(self, id, fields_tag=None) -> dict[str, Any]:
478
+ async def get_tags_for_campaign(self, id, fields_tag=None) -> dict[str, Any]:
521
479
  """
522
480
  This API operation retrieves tags for a campaign by ID using the GET method, allowing optional filtering by specific fields and versioning through a revision header.
523
481
 
@@ -539,7 +497,7 @@ class KlaviyoApp(APIApplication):
539
497
  response.raise_for_status()
540
498
  return response.json()
541
499
 
542
- def get_tag_ids_for_campaign(self, id) -> dict[str, Any]:
500
+ async def get_tag_ids_for_campaign(self, id) -> dict[str, Any]:
543
501
  """
544
502
  This API operation retrieves the relationships between a campaign, identified by its ID, and associated tags, returning the relevant tag information.
545
503
 
@@ -560,14 +518,8 @@ class KlaviyoApp(APIApplication):
560
518
  response.raise_for_status()
561
519
  return response.json()
562
520
 
563
- def get_messages_for_campaign(
564
- self,
565
- id,
566
- fields_campaign_message=None,
567
- fields_campaign=None,
568
- fields_image=None,
569
- fields_template=None,
570
- include=None,
521
+ async def get_messages_for_campaign(
522
+ self, id, fields_campaign_message=None, fields_campaign=None, fields_image=None, fields_template=None, include=None
571
523
  ) -> dict[str, Any]:
572
524
  """
573
525
  Retrieves campaign messages associated with a specific campaign ID, allowing optional field selection and resource inclusion via query parameters, with support for header-based versioning.
@@ -604,7 +556,7 @@ class KlaviyoApp(APIApplication):
604
556
  response.raise_for_status()
605
557
  return response.json()
606
558
 
607
- def get_message_ids_for_campaign(self, id) -> dict[str, Any]:
559
+ async def get_message_ids_for_campaign(self, id) -> dict[str, Any]:
608
560
  """
609
561
  Retrieves the relationships between the specified campaign and its associated messages using the "revision" header parameter for versioning.
610
562
 
@@ -625,14 +577,8 @@ class KlaviyoApp(APIApplication):
625
577
  response.raise_for_status()
626
578
  return response.json()
627
579
 
628
- def get_campaign_message(
629
- self,
630
- id,
631
- fields_campaign_message=None,
632
- fields_campaign=None,
633
- fields_image=None,
634
- fields_template=None,
635
- include=None,
580
+ async def get_campaign_message(
581
+ self, id, fields_campaign_message=None, fields_campaign=None, fields_image=None, fields_template=None, include=None
636
582
  ) -> dict[str, Any]:
637
583
  """
638
584
  This API operation uses the "GET" method to retrieve a campaign message by its ID, allowing for customizable field selection via query parameters and revision specification in the header.
@@ -669,7 +615,7 @@ class KlaviyoApp(APIApplication):
669
615
  response.raise_for_status()
670
616
  return response.json()
671
617
 
672
- def update_campaign_message(self, id, data=None) -> dict[str, Any]:
618
+ async def update_campaign_message(self, id, data=None) -> dict[str, Any]:
673
619
  """
674
620
  The **PATCH** operation at "/api/campaign-messages/{id}" partially updates a campaign message by applying specified changes, using a revision header to ensure data consistency.
675
621
 
@@ -717,9 +663,7 @@ class KlaviyoApp(APIApplication):
717
663
  """
718
664
  if id is None:
719
665
  raise ValueError("Missing required parameter 'id'")
720
- request_body = {
721
- "data": data,
722
- }
666
+ request_body = {"data": data}
723
667
  request_body = {k: v for k, v in request_body.items() if v is not None}
724
668
  url = f"{self.base_url}/api/campaign-messages/{id}"
725
669
  query_params = {}
@@ -727,7 +671,7 @@ class KlaviyoApp(APIApplication):
727
671
  response.raise_for_status()
728
672
  return response.json()
729
673
 
730
- def assign_template_to_campaign_message(self, data=None) -> dict[str, Any]:
674
+ async def assign_template_to_campaign_message(self, data=None) -> dict[str, Any]:
731
675
  """
732
676
  Creates a new campaign message template assignment, requiring a revision header parameter, returning HTTP 201 on success or 400/500 for client/server errors.
733
677
 
@@ -757,9 +701,7 @@ class KlaviyoApp(APIApplication):
757
701
  Tags:
758
702
  Campaigns, Messages
759
703
  """
760
- request_body = {
761
- "data": data,
762
- }
704
+ request_body = {"data": data}
763
705
  request_body = {k: v for k, v in request_body.items() if v is not None}
764
706
  url = f"{self.base_url}/api/campaign-message-assign-template"
765
707
  query_params = {}
@@ -767,9 +709,7 @@ class KlaviyoApp(APIApplication):
767
709
  response.raise_for_status()
768
710
  return response.json()
769
711
 
770
- def get_campaign_for_campaign_message(
771
- self, id, fields_campaign=None
772
- ) -> dict[str, Any]:
712
+ async def get_campaign_for_campaign_message(self, id, fields_campaign=None) -> dict[str, Any]:
773
713
  """
774
714
  Retrieves the campaign associated with a specific campaign message ID, optionally filtering returned campaign fields via query parameter and supporting revision tracking via header.
775
715
 
@@ -786,14 +726,12 @@ class KlaviyoApp(APIApplication):
786
726
  if id is None:
787
727
  raise ValueError("Missing required parameter 'id'")
788
728
  url = f"{self.base_url}/api/campaign-messages/{id}/campaign"
789
- query_params = {
790
- k: v for k, v in [("fields[campaign]", fields_campaign)] if v is not None
791
- }
729
+ query_params = {k: v for k, v in [("fields[campaign]", fields_campaign)] if v is not None}
792
730
  response = self._get(url, params=query_params)
793
731
  response.raise_for_status()
794
732
  return response.json()
795
733
 
796
- def get_campaign_id_for_campaign_message(self, id) -> dict[str, Any]:
734
+ async def get_campaign_id_for_campaign_message(self, id) -> dict[str, Any]:
797
735
  """
798
736
  Retrieves the relationship between a campaign message and its associated campaign by making a GET request to the "/api/campaign-messages/{id}/relationships/campaign" endpoint, optionally specifying a revision in the header.
799
737
 
@@ -814,9 +752,7 @@ class KlaviyoApp(APIApplication):
814
752
  response.raise_for_status()
815
753
  return response.json()
816
754
 
817
- def get_template_for_campaign_message(
818
- self, id, fields_template=None
819
- ) -> dict[str, Any]:
755
+ async def get_template_for_campaign_message(self, id, fields_template=None) -> dict[str, Any]:
820
756
  """
821
757
  Retrieves the template details for a campaign message specified by the provided ID, allowing optional filtering of response fields and specifying a revision via the header.
822
758
 
@@ -833,14 +769,12 @@ class KlaviyoApp(APIApplication):
833
769
  if id is None:
834
770
  raise ValueError("Missing required parameter 'id'")
835
771
  url = f"{self.base_url}/api/campaign-messages/{id}/template"
836
- query_params = {
837
- k: v for k, v in [("fields[template]", fields_template)] if v is not None
838
- }
772
+ query_params = {k: v for k, v in [("fields[template]", fields_template)] if v is not None}
839
773
  response = self._get(url, params=query_params)
840
774
  response.raise_for_status()
841
775
  return response.json()
842
776
 
843
- def get_template_id_for_campaign_message(self, id) -> dict[str, Any]:
777
+ async def get_template_id_for_campaign_message(self, id) -> dict[str, Any]:
844
778
  """
845
779
  Retrieves the template relationship associated with a specific campaign message, identified by its ID, with an optional revision header parameter for version control.
846
780
 
@@ -861,7 +795,7 @@ class KlaviyoApp(APIApplication):
861
795
  response.raise_for_status()
862
796
  return response.json()
863
797
 
864
- def get_image_for_campaign_message(self, id, fields_image=None) -> dict[str, Any]:
798
+ async def get_image_for_campaign_message(self, id, fields_image=None) -> dict[str, Any]:
865
799
  """
866
800
  Retrieves the image associated with a campaign message by ID, allowing optional filtering by image fields and specifying a revision in the request header.
867
801
 
@@ -878,14 +812,12 @@ class KlaviyoApp(APIApplication):
878
812
  if id is None:
879
813
  raise ValueError("Missing required parameter 'id'")
880
814
  url = f"{self.base_url}/api/campaign-messages/{id}/image"
881
- query_params = {
882
- k: v for k, v in [("fields[image]", fields_image)] if v is not None
883
- }
815
+ query_params = {k: v for k, v in [("fields[image]", fields_image)] if v is not None}
884
816
  response = self._get(url, params=query_params)
885
817
  response.raise_for_status()
886
818
  return response.json()
887
819
 
888
- def get_image_id_for_campaign_message(self, id) -> dict[str, Any]:
820
+ async def get_image_id_for_campaign_message(self, id) -> dict[str, Any]:
889
821
  """
890
822
  Retrieves the image relationship for a campaign message with the specified ID, optionally filtered by a header revision parameter.
891
823
 
@@ -906,7 +838,7 @@ class KlaviyoApp(APIApplication):
906
838
  response.raise_for_status()
907
839
  return response.json()
908
840
 
909
- def update_image_for_campaign_message(self, id, data=None) -> Any:
841
+ async def update_image_for_campaign_message(self, id, data=None) -> Any:
910
842
  """
911
843
  Updates the image relationship for a campaign message by replacing the existing related image with a new one using the provided revision for concurrency control.
912
844
 
@@ -931,9 +863,7 @@ class KlaviyoApp(APIApplication):
931
863
  """
932
864
  if id is None:
933
865
  raise ValueError("Missing required parameter 'id'")
934
- request_body = {
935
- "data": data,
936
- }
866
+ request_body = {"data": data}
937
867
  request_body = {k: v for k, v in request_body.items() if v is not None}
938
868
  url = f"{self.base_url}/api/campaign-messages/{id}/relationships/image"
939
869
  query_params = {}
@@ -941,9 +871,7 @@ class KlaviyoApp(APIApplication):
941
871
  response.raise_for_status()
942
872
  return response.json()
943
873
 
944
- def get_campaign_send_job(
945
- self, id, fields_campaign_send_job=None
946
- ) -> dict[str, Any]:
874
+ async def get_campaign_send_job(self, id, fields_campaign_send_job=None) -> dict[str, Any]:
947
875
  """
948
876
  Retrieves a specific campaign send job by ID, supporting optional query parameters for field selection and header-based revision control.
949
877
 
@@ -960,16 +888,12 @@ class KlaviyoApp(APIApplication):
960
888
  if id is None:
961
889
  raise ValueError("Missing required parameter 'id'")
962
890
  url = f"{self.base_url}/api/campaign-send-jobs/{id}"
963
- query_params = {
964
- k: v
965
- for k, v in [("fields[campaign-send-job]", fields_campaign_send_job)]
966
- if v is not None
967
- }
891
+ query_params = {k: v for k, v in [("fields[campaign-send-job]", fields_campaign_send_job)] if v is not None}
968
892
  response = self._get(url, params=query_params)
969
893
  response.raise_for_status()
970
894
  return response.json()
971
895
 
972
- def cancel_campaign_send(self, id, data=None) -> Any:
896
+ async def cancel_campaign_send(self, id, data=None) -> Any:
973
897
  """
974
898
  The **PATCH** operation at path "/api/campaign-send-jobs/{id}" partially updates a campaign send job by applying specific changes, requiring a revision in the header, and returns a successful response without content if modified successfully (204), or error codes for invalid requests (400) or server errors (500).
975
899
 
@@ -997,9 +921,7 @@ class KlaviyoApp(APIApplication):
997
921
  """
998
922
  if id is None:
999
923
  raise ValueError("Missing required parameter 'id'")
1000
- request_body = {
1001
- "data": data,
1002
- }
924
+ request_body = {"data": data}
1003
925
  request_body = {k: v for k, v in request_body.items() if v is not None}
1004
926
  url = f"{self.base_url}/api/campaign-send-jobs/{id}"
1005
927
  query_params = {}
@@ -1007,9 +929,7 @@ class KlaviyoApp(APIApplication):
1007
929
  response.raise_for_status()
1008
930
  return response.json()
1009
931
 
1010
- def get_campaign_recipient_estimation_job(
1011
- self, id, fields_campaign_recipient_estimation_job=None
1012
- ) -> dict[str, Any]:
932
+ async def get_campaign_recipient_estimation_job(self, id, fields_campaign_recipient_estimation_job=None) -> dict[str, Any]:
1013
933
  """
1014
934
  Retrieves details of a specific campaign recipient estimation job by its ID with optional field selection and revision header.
1015
935
 
@@ -1027,20 +947,13 @@ class KlaviyoApp(APIApplication):
1027
947
  raise ValueError("Missing required parameter 'id'")
1028
948
  url = f"{self.base_url}/api/campaign-recipient-estimation-jobs/{id}"
1029
949
  query_params = {
1030
- k: v
1031
- for k, v in [
1032
- (
1033
- "fields[campaign-recipient-estimation-job]",
1034
- fields_campaign_recipient_estimation_job,
1035
- )
1036
- ]
1037
- if v is not None
950
+ k: v for k, v in [("fields[campaign-recipient-estimation-job]", fields_campaign_recipient_estimation_job)] if v is not None
1038
951
  }
1039
952
  response = self._get(url, params=query_params)
1040
953
  response.raise_for_status()
1041
954
  return response.json()
1042
955
 
1043
- def send_campaign(self, data=None) -> dict[str, Any]:
956
+ async def send_campaign(self, data=None) -> dict[str, Any]:
1044
957
  """
1045
958
  Submits a campaign send job for asynchronous processing of a message dispatch, with a required API version header parameter.
1046
959
 
@@ -1062,9 +975,7 @@ class KlaviyoApp(APIApplication):
1062
975
  Tags:
1063
976
  Campaigns, Jobs
1064
977
  """
1065
- request_body = {
1066
- "data": data,
1067
- }
978
+ request_body = {"data": data}
1068
979
  request_body = {k: v for k, v in request_body.items() if v is not None}
1069
980
  url = f"{self.base_url}/api/campaign-send-jobs"
1070
981
  query_params = {}
@@ -1072,7 +983,7 @@ class KlaviyoApp(APIApplication):
1072
983
  response.raise_for_status()
1073
984
  return response.json()
1074
985
 
1075
- def refresh_campaign_recipient_estimation(self, data=None) -> dict[str, Any]:
986
+ async def refresh_campaign_recipient_estimation(self, data=None) -> dict[str, Any]:
1076
987
  """
1077
988
  Submits a request to create and initiate a campaign recipient estimation job, requiring a revision header and returning 202 Accepted, 400 Bad Request, or 500 Internal Server Error responses.
1078
989
 
@@ -1094,9 +1005,7 @@ class KlaviyoApp(APIApplication):
1094
1005
  Tags:
1095
1006
  Campaigns, Jobs
1096
1007
  """
1097
- request_body = {
1098
- "data": data,
1099
- }
1008
+ request_body = {"data": data}
1100
1009
  request_body = {k: v for k, v in request_body.items() if v is not None}
1101
1010
  url = f"{self.base_url}/api/campaign-recipient-estimation-jobs"
1102
1011
  query_params = {}
@@ -1104,14 +1013,8 @@ class KlaviyoApp(APIApplication):
1104
1013
  response.raise_for_status()
1105
1014
  return response.json()
1106
1015
 
1107
- def get_catalog_items(
1108
- self,
1109
- fields_catalog_item=None,
1110
- fields_catalog_variant=None,
1111
- filter=None,
1112
- include=None,
1113
- page_cursor=None,
1114
- sort=None,
1016
+ async def get_catalog_items(
1017
+ self, fields_catalog_item=None, fields_catalog_variant=None, filter=None, include=None, page_cursor=None, sort=None
1115
1018
  ) -> dict[str, Any]:
1116
1019
  """
1117
1020
  This API operation retrieves a list of catalog items, allowing for customizable fields, filtering, sorting, and pagination, with optional inclusion of related resources and version control through a revision header.
@@ -1147,7 +1050,7 @@ class KlaviyoApp(APIApplication):
1147
1050
  response.raise_for_status()
1148
1051
  return response.json()
1149
1052
 
1150
- def create_catalog_item(self, data=None) -> dict[str, Any]:
1053
+ async def create_catalog_item(self, data=None) -> dict[str, Any]:
1151
1054
  """
1152
1055
  Creates a new catalog item entry with optional revision control through header parameters, returning success (201), client error (400), or server error (500) status codes.
1153
1056
 
@@ -1199,9 +1102,7 @@ class KlaviyoApp(APIApplication):
1199
1102
  Tags:
1200
1103
  Catalogs, Items
1201
1104
  """
1202
- request_body = {
1203
- "data": data,
1204
- }
1105
+ request_body = {"data": data}
1205
1106
  request_body = {k: v for k, v in request_body.items() if v is not None}
1206
1107
  url = f"{self.base_url}/api/catalog-items"
1207
1108
  query_params = {}
@@ -1209,9 +1110,7 @@ class KlaviyoApp(APIApplication):
1209
1110
  response.raise_for_status()
1210
1111
  return response.json()
1211
1112
 
1212
- def get_catalog_item(
1213
- self, id, fields_catalog_item=None, fields_catalog_variant=None, include=None
1214
- ) -> dict[str, Any]:
1113
+ async def get_catalog_item(self, id, fields_catalog_item=None, fields_catalog_variant=None, include=None) -> dict[str, Any]:
1215
1114
  """
1216
1115
  The **GET /api/catalog-items/{id}** operation retrieves a specific catalog item by its ID, allowing for customizable field selection via query parameters and inclusion of additional resources, while requiring revision information in the header.
1217
1116
 
@@ -1243,7 +1142,7 @@ class KlaviyoApp(APIApplication):
1243
1142
  response.raise_for_status()
1244
1143
  return response.json()
1245
1144
 
1246
- def delete_catalog_item(self, id) -> Any:
1145
+ async def delete_catalog_item(self, id) -> Any:
1247
1146
  """
1248
1147
  Deletes a catalog item by its ID, requiring a revision parameter in the header, and returns a successful response with a 204 status if the operation is completed without issues.
1249
1148
 
@@ -1264,7 +1163,7 @@ class KlaviyoApp(APIApplication):
1264
1163
  response.raise_for_status()
1265
1164
  return response.json()
1266
1165
 
1267
- def update_catalog_item(self, id, data=None) -> dict[str, Any]:
1166
+ async def update_catalog_item(self, id, data=None) -> dict[str, Any]:
1268
1167
  """
1269
1168
  Updates a catalog item by its ID with partial modifications, requiring a revision header and returning success (200), bad request (400), or server error (500) status codes.
1270
1169
 
@@ -1317,9 +1216,7 @@ class KlaviyoApp(APIApplication):
1317
1216
  """
1318
1217
  if id is None:
1319
1218
  raise ValueError("Missing required parameter 'id'")
1320
- request_body = {
1321
- "data": data,
1322
- }
1219
+ request_body = {"data": data}
1323
1220
  request_body = {k: v for k, v in request_body.items() if v is not None}
1324
1221
  url = f"{self.base_url}/api/catalog-items/{id}"
1325
1222
  query_params = {}
@@ -1327,7 +1224,7 @@ class KlaviyoApp(APIApplication):
1327
1224
  response.raise_for_status()
1328
1225
  return response.json()
1329
1226
 
1330
- def get_bulk_create_catalog_items_jobs(
1227
+ async def get_bulk_create_catalog_items_jobs(
1331
1228
  self, fields_catalog_item_bulk_create_job=None, filter=None, page_cursor=None
1332
1229
  ) -> dict[str, Any]:
1333
1230
  """
@@ -1348,10 +1245,7 @@ class KlaviyoApp(APIApplication):
1348
1245
  query_params = {
1349
1246
  k: v
1350
1247
  for k, v in [
1351
- (
1352
- "fields[catalog-item-bulk-create-job]",
1353
- fields_catalog_item_bulk_create_job,
1354
- ),
1248
+ ("fields[catalog-item-bulk-create-job]", fields_catalog_item_bulk_create_job),
1355
1249
  ("filter", filter),
1356
1250
  ("page[cursor]", page_cursor),
1357
1251
  ]
@@ -1361,7 +1255,7 @@ class KlaviyoApp(APIApplication):
1361
1255
  response.raise_for_status()
1362
1256
  return response.json()
1363
1257
 
1364
- def bulk_create_catalog_items(self, data=None) -> dict[str, Any]:
1258
+ async def bulk_create_catalog_items(self, data=None) -> dict[str, Any]:
1365
1259
  """
1366
1260
  Submits a request to create multiple catalog items asynchronously via bulk processing.
1367
1261
 
@@ -1456,9 +1350,7 @@ class KlaviyoApp(APIApplication):
1456
1350
  Tags:
1457
1351
  Catalogs, Items
1458
1352
  """
1459
- request_body = {
1460
- "data": data,
1461
- }
1353
+ request_body = {"data": data}
1462
1354
  request_body = {k: v for k, v in request_body.items() if v is not None}
1463
1355
  url = f"{self.base_url}/api/catalog-item-bulk-create-jobs"
1464
1356
  query_params = {}
@@ -1466,12 +1358,8 @@ class KlaviyoApp(APIApplication):
1466
1358
  response.raise_for_status()
1467
1359
  return response.json()
1468
1360
 
1469
- def get_bulk_create_catalog_items_job(
1470
- self,
1471
- job_id,
1472
- fields_catalog_item_bulk_create_job=None,
1473
- fields_catalog_item=None,
1474
- include=None,
1361
+ async def get_bulk_create_catalog_items_job(
1362
+ self, job_id, fields_catalog_item_bulk_create_job=None, fields_catalog_item=None, include=None
1475
1363
  ) -> dict[str, Any]:
1476
1364
  """
1477
1365
  This API operation retrieves a catalog item bulk creation job by its ID, allowing optional fields and included resources to be specified for detailed job information.
@@ -1494,10 +1382,7 @@ class KlaviyoApp(APIApplication):
1494
1382
  query_params = {
1495
1383
  k: v
1496
1384
  for k, v in [
1497
- (
1498
- "fields[catalog-item-bulk-create-job]",
1499
- fields_catalog_item_bulk_create_job,
1500
- ),
1385
+ ("fields[catalog-item-bulk-create-job]", fields_catalog_item_bulk_create_job),
1501
1386
  ("fields[catalog-item]", fields_catalog_item),
1502
1387
  ("include", include),
1503
1388
  ]
@@ -1507,7 +1392,7 @@ class KlaviyoApp(APIApplication):
1507
1392
  response.raise_for_status()
1508
1393
  return response.json()
1509
1394
 
1510
- def get_bulk_update_catalog_items_jobs(
1395
+ async def get_bulk_update_catalog_items_jobs(
1511
1396
  self, fields_catalog_item_bulk_update_job=None, filter=None, page_cursor=None
1512
1397
  ) -> dict[str, Any]:
1513
1398
  """
@@ -1528,10 +1413,7 @@ class KlaviyoApp(APIApplication):
1528
1413
  query_params = {
1529
1414
  k: v
1530
1415
  for k, v in [
1531
- (
1532
- "fields[catalog-item-bulk-update-job]",
1533
- fields_catalog_item_bulk_update_job,
1534
- ),
1416
+ ("fields[catalog-item-bulk-update-job]", fields_catalog_item_bulk_update_job),
1535
1417
  ("filter", filter),
1536
1418
  ("page[cursor]", page_cursor),
1537
1419
  ]
@@ -1541,7 +1423,7 @@ class KlaviyoApp(APIApplication):
1541
1423
  response.raise_for_status()
1542
1424
  return response.json()
1543
1425
 
1544
- def bulk_update_catalog_items(self, data=None) -> dict[str, Any]:
1426
+ async def bulk_update_catalog_items(self, data=None) -> dict[str, Any]:
1545
1427
  """
1546
1428
  Creates a bulk update job for catalog items, accepting header-based revision control and returning asynchronous responses including 202 Accepted, 400 Bad Request, and 500 Internal Server Error status codes.
1547
1429
 
@@ -1632,9 +1514,7 @@ class KlaviyoApp(APIApplication):
1632
1514
  Tags:
1633
1515
  Catalogs, Items
1634
1516
  """
1635
- request_body = {
1636
- "data": data,
1637
- }
1517
+ request_body = {"data": data}
1638
1518
  request_body = {k: v for k, v in request_body.items() if v is not None}
1639
1519
  url = f"{self.base_url}/api/catalog-item-bulk-update-jobs"
1640
1520
  query_params = {}
@@ -1642,12 +1522,8 @@ class KlaviyoApp(APIApplication):
1642
1522
  response.raise_for_status()
1643
1523
  return response.json()
1644
1524
 
1645
- def get_bulk_update_catalog_items_job(
1646
- self,
1647
- job_id,
1648
- fields_catalog_item_bulk_update_job=None,
1649
- fields_catalog_item=None,
1650
- include=None,
1525
+ async def get_bulk_update_catalog_items_job(
1526
+ self, job_id, fields_catalog_item_bulk_update_job=None, fields_catalog_item=None, include=None
1651
1527
  ) -> dict[str, Any]:
1652
1528
  """
1653
1529
  Retrieves the status and details of a specific catalog item bulk update job, including optional related items and field filtering via query parameters.
@@ -1670,10 +1546,7 @@ class KlaviyoApp(APIApplication):
1670
1546
  query_params = {
1671
1547
  k: v
1672
1548
  for k, v in [
1673
- (
1674
- "fields[catalog-item-bulk-update-job]",
1675
- fields_catalog_item_bulk_update_job,
1676
- ),
1549
+ ("fields[catalog-item-bulk-update-job]", fields_catalog_item_bulk_update_job),
1677
1550
  ("fields[catalog-item]", fields_catalog_item),
1678
1551
  ("include", include),
1679
1552
  ]
@@ -1683,7 +1556,7 @@ class KlaviyoApp(APIApplication):
1683
1556
  response.raise_for_status()
1684
1557
  return response.json()
1685
1558
 
1686
- def get_bulk_delete_catalog_items_jobs(
1559
+ async def get_bulk_delete_catalog_items_jobs(
1687
1560
  self, fields_catalog_item_bulk_delete_job=None, filter=None, page_cursor=None
1688
1561
  ) -> dict[str, Any]:
1689
1562
  """
@@ -1704,10 +1577,7 @@ class KlaviyoApp(APIApplication):
1704
1577
  query_params = {
1705
1578
  k: v
1706
1579
  for k, v in [
1707
- (
1708
- "fields[catalog-item-bulk-delete-job]",
1709
- fields_catalog_item_bulk_delete_job,
1710
- ),
1580
+ ("fields[catalog-item-bulk-delete-job]", fields_catalog_item_bulk_delete_job),
1711
1581
  ("filter", filter),
1712
1582
  ("page[cursor]", page_cursor),
1713
1583
  ]
@@ -1717,7 +1587,7 @@ class KlaviyoApp(APIApplication):
1717
1587
  response.raise_for_status()
1718
1588
  return response.json()
1719
1589
 
1720
- def bulk_delete_catalog_items(self, data=None) -> dict[str, Any]:
1590
+ async def bulk_delete_catalog_items(self, data=None) -> dict[str, Any]:
1721
1591
  """
1722
1592
  Creates a bulk delete job for catalog items with a specified revision header, returning 202 on success, 400 for bad requests, or 500 for server errors.
1723
1593
 
@@ -1752,9 +1622,7 @@ class KlaviyoApp(APIApplication):
1752
1622
  Tags:
1753
1623
  Catalogs, Items
1754
1624
  """
1755
- request_body = {
1756
- "data": data,
1757
- }
1625
+ request_body = {"data": data}
1758
1626
  request_body = {k: v for k, v in request_body.items() if v is not None}
1759
1627
  url = f"{self.base_url}/api/catalog-item-bulk-delete-jobs"
1760
1628
  query_params = {}
@@ -1762,9 +1630,7 @@ class KlaviyoApp(APIApplication):
1762
1630
  response.raise_for_status()
1763
1631
  return response.json()
1764
1632
 
1765
- def get_bulk_delete_catalog_items_job(
1766
- self, job_id, fields_catalog_item_bulk_delete_job=None
1767
- ) -> dict[str, Any]:
1633
+ async def get_bulk_delete_catalog_items_job(self, job_id, fields_catalog_item_bulk_delete_job=None) -> dict[str, Any]:
1768
1634
  """
1769
1635
  Retrieve a catalog item bulk delete job by its job ID, allowing for the inspection of job details such as status and progress, with optional filtering of returned fields and specification of a revision.
1770
1636
 
@@ -1781,29 +1647,13 @@ class KlaviyoApp(APIApplication):
1781
1647
  if job_id is None:
1782
1648
  raise ValueError("Missing required parameter 'job_id'")
1783
1649
  url = f"{self.base_url}/api/catalog-item-bulk-delete-jobs/{job_id}"
1784
- query_params = {
1785
- k: v
1786
- for k, v in [
1787
- (
1788
- "fields[catalog-item-bulk-delete-job]",
1789
- fields_catalog_item_bulk_delete_job,
1790
- )
1791
- ]
1792
- if v is not None
1793
- }
1650
+ query_params = {k: v for k, v in [("fields[catalog-item-bulk-delete-job]", fields_catalog_item_bulk_delete_job)] if v is not None}
1794
1651
  response = self._get(url, params=query_params)
1795
1652
  response.raise_for_status()
1796
1653
  return response.json()
1797
1654
 
1798
- def get_items_for_catalog_category(
1799
- self,
1800
- id,
1801
- fields_catalog_item=None,
1802
- fields_catalog_variant=None,
1803
- filter=None,
1804
- include=None,
1805
- page_cursor=None,
1806
- sort=None,
1655
+ async def get_items_for_catalog_category(
1656
+ self, id, fields_catalog_item=None, fields_catalog_variant=None, filter=None, include=None, page_cursor=None, sort=None
1807
1657
  ) -> dict[str, Any]:
1808
1658
  """
1809
1659
  Retrieve a list of items within a specified catalog category by ID, allowing optional filtering, sorting, and inclusion of additional details.
@@ -1842,9 +1692,7 @@ class KlaviyoApp(APIApplication):
1842
1692
  response.raise_for_status()
1843
1693
  return response.json()
1844
1694
 
1845
- def get_category_ids_for_catalog_item(
1846
- self, id, filter=None, page_cursor=None, sort=None
1847
- ) -> dict[str, Any]:
1695
+ async def get_category_ids_for_catalog_item(self, id, filter=None, page_cursor=None, sort=None) -> dict[str, Any]:
1848
1696
  """
1849
1697
  The API operation at path "/api/catalog-items/{id}/relationships/categories" using the "GET" method retrieves the category relationships for a specific catalog item identified by its ID, allowing filtering, pagination, and sorting of the results, with optional revision specification in the header.
1850
1698
 
@@ -1863,20 +1711,12 @@ class KlaviyoApp(APIApplication):
1863
1711
  if id is None:
1864
1712
  raise ValueError("Missing required parameter 'id'")
1865
1713
  url = f"{self.base_url}/api/catalog-items/{id}/relationships/categories"
1866
- query_params = {
1867
- k: v
1868
- for k, v in [
1869
- ("filter", filter),
1870
- ("page[cursor]", page_cursor),
1871
- ("sort", sort),
1872
- ]
1873
- if v is not None
1874
- }
1714
+ query_params = {k: v for k, v in [("filter", filter), ("page[cursor]", page_cursor), ("sort", sort)] if v is not None}
1875
1715
  response = self._get(url, params=query_params)
1876
1716
  response.raise_for_status()
1877
1717
  return response.json()
1878
1718
 
1879
- def add_categories_to_catalog_item(self, id, data=None) -> Any:
1719
+ async def add_categories_to_catalog_item(self, id, data=None) -> Any:
1880
1720
  """
1881
1721
  Adds a relationship between the specified catalog item and one or more categories using the provided revision header.
1882
1722
 
@@ -1907,9 +1747,7 @@ class KlaviyoApp(APIApplication):
1907
1747
  """
1908
1748
  if id is None:
1909
1749
  raise ValueError("Missing required parameter 'id'")
1910
- request_body = {
1911
- "data": data,
1912
- }
1750
+ request_body = {"data": data}
1913
1751
  request_body = {k: v for k, v in request_body.items() if v is not None}
1914
1752
  url = f"{self.base_url}/api/catalog-items/{id}/relationships/categories"
1915
1753
  query_params = {}
@@ -1917,7 +1755,7 @@ class KlaviyoApp(APIApplication):
1917
1755
  response.raise_for_status()
1918
1756
  return response.json()
1919
1757
 
1920
- def remove_categories_from_catalog_item(self, id, data=None) -> Any:
1758
+ async def remove_categories_from_catalog_item(self, id, data=None) -> Any:
1921
1759
  """
1922
1760
  Deletes a relationship between a catalog item, identified by `{id}`, and its categories, requiring a revision provided in the header for validation.
1923
1761
 
@@ -1948,9 +1786,7 @@ class KlaviyoApp(APIApplication):
1948
1786
  """
1949
1787
  if id is None:
1950
1788
  raise ValueError("Missing required parameter 'id'")
1951
- request_body = {
1952
- "data": data,
1953
- }
1789
+ request_body = {"data": data}
1954
1790
  request_body = {k: v for k, v in request_body.items() if v is not None}
1955
1791
  url = f"{self.base_url}/api/catalog-items/{id}/relationships/categories"
1956
1792
  query_params = {}
@@ -1958,7 +1794,7 @@ class KlaviyoApp(APIApplication):
1958
1794
  response.raise_for_status()
1959
1795
  return response.json()
1960
1796
 
1961
- def update_categories_for_catalog_item(self, id, data=None) -> Any:
1797
+ async def update_categories_for_catalog_item(self, id, data=None) -> Any:
1962
1798
  """
1963
1799
  This API operation updates the categories relationship for a catalog item by applying partial modifications using the PATCH method, requiring a revision header to ensure data consistency.
1964
1800
 
@@ -1989,9 +1825,7 @@ class KlaviyoApp(APIApplication):
1989
1825
  """
1990
1826
  if id is None:
1991
1827
  raise ValueError("Missing required parameter 'id'")
1992
- request_body = {
1993
- "data": data,
1994
- }
1828
+ request_body = {"data": data}
1995
1829
  request_body = {k: v for k, v in request_body.items() if v is not None}
1996
1830
  url = f"{self.base_url}/api/catalog-items/{id}/relationships/categories"
1997
1831
  query_params = {}
@@ -1999,9 +1833,7 @@ class KlaviyoApp(APIApplication):
1999
1833
  response.raise_for_status()
2000
1834
  return response.json()
2001
1835
 
2002
- def get_catalog_variants(
2003
- self, fields_catalog_variant=None, filter=None, page_cursor=None, sort=None
2004
- ) -> dict[str, Any]:
1836
+ async def get_catalog_variants(self, fields_catalog_variant=None, filter=None, page_cursor=None, sort=None) -> dict[str, Any]:
2005
1837
  """
2006
1838
  Retrieves all catalog variants with optional filtering, sorting, pagination, and field selection parameters.
2007
1839
 
@@ -2032,7 +1864,7 @@ class KlaviyoApp(APIApplication):
2032
1864
  response.raise_for_status()
2033
1865
  return response.json()
2034
1866
 
2035
- def create_catalog_variant(self, data=None) -> dict[str, Any]:
1867
+ async def create_catalog_variant(self, data=None) -> dict[str, Any]:
2036
1868
  """
2037
1869
  Creates a new catalog variant with the provided data, requiring a revision header and returning status codes for success (201), client errors (400), and server errors (500).
2038
1870
 
@@ -2081,9 +1913,7 @@ class KlaviyoApp(APIApplication):
2081
1913
  Tags:
2082
1914
  Catalogs, Variants
2083
1915
  """
2084
- request_body = {
2085
- "data": data,
2086
- }
1916
+ request_body = {"data": data}
2087
1917
  request_body = {k: v for k, v in request_body.items() if v is not None}
2088
1918
  url = f"{self.base_url}/api/catalog-variants"
2089
1919
  query_params = {}
@@ -2091,7 +1921,7 @@ class KlaviyoApp(APIApplication):
2091
1921
  response.raise_for_status()
2092
1922
  return response.json()
2093
1923
 
2094
- def get_catalog_variant(self, id, fields_catalog_variant=None) -> dict[str, Any]:
1924
+ async def get_catalog_variant(self, id, fields_catalog_variant=None) -> dict[str, Any]:
2095
1925
  """
2096
1926
  Retrieves a catalog variant by ID with optional field filtering and revision header support.
2097
1927
 
@@ -2108,16 +1938,12 @@ class KlaviyoApp(APIApplication):
2108
1938
  if id is None:
2109
1939
  raise ValueError("Missing required parameter 'id'")
2110
1940
  url = f"{self.base_url}/api/catalog-variants/{id}"
2111
- query_params = {
2112
- k: v
2113
- for k, v in [("fields[catalog-variant]", fields_catalog_variant)]
2114
- if v is not None
2115
- }
1941
+ query_params = {k: v for k, v in [("fields[catalog-variant]", fields_catalog_variant)] if v is not None}
2116
1942
  response = self._get(url, params=query_params)
2117
1943
  response.raise_for_status()
2118
1944
  return response.json()
2119
1945
 
2120
- def delete_catalog_variant(self, id) -> Any:
1946
+ async def delete_catalog_variant(self, id) -> Any:
2121
1947
  """
2122
1948
  Deletes a catalog variant by its ID using a specified header revision, returning status codes for success (204), client error (400), or server error (500).
2123
1949
 
@@ -2138,7 +1964,7 @@ class KlaviyoApp(APIApplication):
2138
1964
  response.raise_for_status()
2139
1965
  return response.json()
2140
1966
 
2141
- def update_catalog_variant(self, id, data=None) -> dict[str, Any]:
1967
+ async def update_catalog_variant(self, id, data=None) -> dict[str, Any]:
2142
1968
  """
2143
1969
  Updates a catalog variant's partial data using a revision header and returns the updated result upon success.
2144
1970
 
@@ -2180,9 +2006,7 @@ class KlaviyoApp(APIApplication):
2180
2006
  """
2181
2007
  if id is None:
2182
2008
  raise ValueError("Missing required parameter 'id'")
2183
- request_body = {
2184
- "data": data,
2185
- }
2009
+ request_body = {"data": data}
2186
2010
  request_body = {k: v for k, v in request_body.items() if v is not None}
2187
2011
  url = f"{self.base_url}/api/catalog-variants/{id}"
2188
2012
  query_params = {}
@@ -2190,9 +2014,7 @@ class KlaviyoApp(APIApplication):
2190
2014
  response.raise_for_status()
2191
2015
  return response.json()
2192
2016
 
2193
- def get_create_variants_jobs(
2194
- self, fields_catalog_variant_bulk_create_job=None, filter=None, page_cursor=None
2195
- ) -> dict[str, Any]:
2017
+ async def get_create_variants_jobs(self, fields_catalog_variant_bulk_create_job=None, filter=None, page_cursor=None) -> dict[str, Any]:
2196
2018
  """
2197
2019
  Retrieves a catalog variant bulk create job by ID, supporting optional filtering, pagination, and field selection in the response.
2198
2020
 
@@ -2211,10 +2033,7 @@ class KlaviyoApp(APIApplication):
2211
2033
  query_params = {
2212
2034
  k: v
2213
2035
  for k, v in [
2214
- (
2215
- "fields[catalog-variant-bulk-create-job]",
2216
- fields_catalog_variant_bulk_create_job,
2217
- ),
2036
+ ("fields[catalog-variant-bulk-create-job]", fields_catalog_variant_bulk_create_job),
2218
2037
  ("filter", filter),
2219
2038
  ("page[cursor]", page_cursor),
2220
2039
  ]
@@ -2224,7 +2043,7 @@ class KlaviyoApp(APIApplication):
2224
2043
  response.raise_for_status()
2225
2044
  return response.json()
2226
2045
 
2227
- def bulk_create_catalog_variants(self, data=None) -> dict[str, Any]:
2046
+ async def bulk_create_catalog_variants(self, data=None) -> dict[str, Any]:
2228
2047
  """
2229
2048
  The **POST /api/catalog-variant-bulk-create-jobs** operation creates a job to bulk create catalog variants, accepting up to 100 variants per request, with a required "revision" header for versioning.
2230
2049
 
@@ -2313,9 +2132,7 @@ class KlaviyoApp(APIApplication):
2313
2132
  Tags:
2314
2133
  Catalogs, Variants
2315
2134
  """
2316
- request_body = {
2317
- "data": data,
2318
- }
2135
+ request_body = {"data": data}
2319
2136
  request_body = {k: v for k, v in request_body.items() if v is not None}
2320
2137
  url = f"{self.base_url}/api/catalog-variant-bulk-create-jobs"
2321
2138
  query_params = {}
@@ -2323,12 +2140,8 @@ class KlaviyoApp(APIApplication):
2323
2140
  response.raise_for_status()
2324
2141
  return response.json()
2325
2142
 
2326
- def get_create_variants_job(
2327
- self,
2328
- job_id,
2329
- fields_catalog_variant_bulk_create_job=None,
2330
- fields_catalog_variant=None,
2331
- include=None,
2143
+ async def get_create_variants_job(
2144
+ self, job_id, fields_catalog_variant_bulk_create_job=None, fields_catalog_variant=None, include=None
2332
2145
  ) -> dict[str, Any]:
2333
2146
  """
2334
2147
  Retrieve details of a specific catalog variant bulk creation job by its ID, supporting optional field selection, inclusion of related resources, and requiring a revision header.
@@ -2351,10 +2164,7 @@ class KlaviyoApp(APIApplication):
2351
2164
  query_params = {
2352
2165
  k: v
2353
2166
  for k, v in [
2354
- (
2355
- "fields[catalog-variant-bulk-create-job]",
2356
- fields_catalog_variant_bulk_create_job,
2357
- ),
2167
+ ("fields[catalog-variant-bulk-create-job]", fields_catalog_variant_bulk_create_job),
2358
2168
  ("fields[catalog-variant]", fields_catalog_variant),
2359
2169
  ("include", include),
2360
2170
  ]
@@ -2364,9 +2174,7 @@ class KlaviyoApp(APIApplication):
2364
2174
  response.raise_for_status()
2365
2175
  return response.json()
2366
2176
 
2367
- def get_update_variants_jobs(
2368
- self, fields_catalog_variant_bulk_update_job=None, filter=None, page_cursor=None
2369
- ) -> dict[str, Any]:
2177
+ async def get_update_variants_jobs(self, fields_catalog_variant_bulk_update_job=None, filter=None, page_cursor=None) -> dict[str, Any]:
2370
2178
  """
2371
2179
  The **GET** operation at "/api/catalog-variant-bulk-update-jobs" retrieves a list of catalog variant bulk update jobs, allowing users to filter results by specific fields and pagination options.
2372
2180
 
@@ -2385,10 +2193,7 @@ class KlaviyoApp(APIApplication):
2385
2193
  query_params = {
2386
2194
  k: v
2387
2195
  for k, v in [
2388
- (
2389
- "fields[catalog-variant-bulk-update-job]",
2390
- fields_catalog_variant_bulk_update_job,
2391
- ),
2196
+ ("fields[catalog-variant-bulk-update-job]", fields_catalog_variant_bulk_update_job),
2392
2197
  ("filter", filter),
2393
2198
  ("page[cursor]", page_cursor),
2394
2199
  ]
@@ -2398,7 +2203,7 @@ class KlaviyoApp(APIApplication):
2398
2203
  response.raise_for_status()
2399
2204
  return response.json()
2400
2205
 
2401
- def bulk_update_catalog_variants(self, data=None) -> dict[str, Any]:
2206
+ async def bulk_update_catalog_variants(self, data=None) -> dict[str, Any]:
2402
2207
  """
2403
2208
  Creates a catalog variant bulk update job to process batch updates for multiple product variants.
2404
2209
 
@@ -2467,9 +2272,7 @@ class KlaviyoApp(APIApplication):
2467
2272
  Tags:
2468
2273
  Catalogs, Variants
2469
2274
  """
2470
- request_body = {
2471
- "data": data,
2472
- }
2275
+ request_body = {"data": data}
2473
2276
  request_body = {k: v for k, v in request_body.items() if v is not None}
2474
2277
  url = f"{self.base_url}/api/catalog-variant-bulk-update-jobs"
2475
2278
  query_params = {}
@@ -2477,12 +2280,8 @@ class KlaviyoApp(APIApplication):
2477
2280
  response.raise_for_status()
2478
2281
  return response.json()
2479
2282
 
2480
- def get_update_variants_job(
2481
- self,
2482
- job_id,
2483
- fields_catalog_variant_bulk_update_job=None,
2484
- fields_catalog_variant=None,
2485
- include=None,
2283
+ async def get_update_variants_job(
2284
+ self, job_id, fields_catalog_variant_bulk_update_job=None, fields_catalog_variant=None, include=None
2486
2285
  ) -> dict[str, Any]:
2487
2286
  """
2488
2287
  The API operation defined at path "/api/catalog-variant-bulk-update-jobs/{job_id}" using the "GET" method retrieves details about a specific catalog variant bulk update job, allowing optional specification of fields to include and related objects.
@@ -2505,10 +2304,7 @@ class KlaviyoApp(APIApplication):
2505
2304
  query_params = {
2506
2305
  k: v
2507
2306
  for k, v in [
2508
- (
2509
- "fields[catalog-variant-bulk-update-job]",
2510
- fields_catalog_variant_bulk_update_job,
2511
- ),
2307
+ ("fields[catalog-variant-bulk-update-job]", fields_catalog_variant_bulk_update_job),
2512
2308
  ("fields[catalog-variant]", fields_catalog_variant),
2513
2309
  ("include", include),
2514
2310
  ]
@@ -2518,9 +2314,7 @@ class KlaviyoApp(APIApplication):
2518
2314
  response.raise_for_status()
2519
2315
  return response.json()
2520
2316
 
2521
- def get_delete_variants_jobs(
2522
- self, fields_catalog_variant_bulk_delete_job=None, filter=None, page_cursor=None
2523
- ) -> dict[str, Any]:
2317
+ async def get_delete_variants_jobs(self, fields_catalog_variant_bulk_delete_job=None, filter=None, page_cursor=None) -> dict[str, Any]:
2524
2318
  """
2525
2319
  The API operation at path "/api/catalog-variant-bulk-delete-jobs" using the "GET" method retrieves information about catalog variant bulk delete jobs, allowing filtering and pagination, and providing specific fields of the job based on query parameters.
2526
2320
 
@@ -2539,10 +2333,7 @@ class KlaviyoApp(APIApplication):
2539
2333
  query_params = {
2540
2334
  k: v
2541
2335
  for k, v in [
2542
- (
2543
- "fields[catalog-variant-bulk-delete-job]",
2544
- fields_catalog_variant_bulk_delete_job,
2545
- ),
2336
+ ("fields[catalog-variant-bulk-delete-job]", fields_catalog_variant_bulk_delete_job),
2546
2337
  ("filter", filter),
2547
2338
  ("page[cursor]", page_cursor),
2548
2339
  ]
@@ -2552,7 +2343,7 @@ class KlaviyoApp(APIApplication):
2552
2343
  response.raise_for_status()
2553
2344
  return response.json()
2554
2345
 
2555
- def bulk_delete_catalog_variants(self, data=None) -> dict[str, Any]:
2346
+ async def bulk_delete_catalog_variants(self, data=None) -> dict[str, Any]:
2556
2347
  """
2557
2348
  Creates a bulk delete job for catalog variants, accepting up to 100 variants per request, with header parameter "revision" and returning 202, 400, or 500 status codes.
2558
2349
 
@@ -2587,9 +2378,7 @@ class KlaviyoApp(APIApplication):
2587
2378
  Tags:
2588
2379
  Catalogs, Variants
2589
2380
  """
2590
- request_body = {
2591
- "data": data,
2592
- }
2381
+ request_body = {"data": data}
2593
2382
  request_body = {k: v for k, v in request_body.items() if v is not None}
2594
2383
  url = f"{self.base_url}/api/catalog-variant-bulk-delete-jobs"
2595
2384
  query_params = {}
@@ -2597,9 +2386,7 @@ class KlaviyoApp(APIApplication):
2597
2386
  response.raise_for_status()
2598
2387
  return response.json()
2599
2388
 
2600
- def get_delete_variants_job(
2601
- self, job_id, fields_catalog_variant_bulk_delete_job=None
2602
- ) -> dict[str, Any]:
2389
+ async def get_delete_variants_job(self, job_id, fields_catalog_variant_bulk_delete_job=None) -> dict[str, Any]:
2603
2390
  """
2604
2391
  Retrieve a specific catalog variant bulk delete job's status and details by its job ID, supporting optional field filtering via query parameters and API version control through headers.
2605
2392
 
@@ -2617,20 +2404,13 @@ class KlaviyoApp(APIApplication):
2617
2404
  raise ValueError("Missing required parameter 'job_id'")
2618
2405
  url = f"{self.base_url}/api/catalog-variant-bulk-delete-jobs/{job_id}"
2619
2406
  query_params = {
2620
- k: v
2621
- for k, v in [
2622
- (
2623
- "fields[catalog-variant-bulk-delete-job]",
2624
- fields_catalog_variant_bulk_delete_job,
2625
- )
2626
- ]
2627
- if v is not None
2407
+ k: v for k, v in [("fields[catalog-variant-bulk-delete-job]", fields_catalog_variant_bulk_delete_job)] if v is not None
2628
2408
  }
2629
2409
  response = self._get(url, params=query_params)
2630
2410
  response.raise_for_status()
2631
2411
  return response.json()
2632
2412
 
2633
- def get_variants_for_catalog_item(
2413
+ async def get_variants_for_catalog_item(
2634
2414
  self, id, fields_catalog_variant=None, filter=None, page_cursor=None, sort=None
2635
2415
  ) -> dict[str, Any]:
2636
2416
  """
@@ -2666,9 +2446,7 @@ class KlaviyoApp(APIApplication):
2666
2446
  response.raise_for_status()
2667
2447
  return response.json()
2668
2448
 
2669
- def get_variant_ids_for_catalog_item(
2670
- self, id, filter=None, page_cursor=None, sort=None
2671
- ) -> dict[str, Any]:
2449
+ async def get_variant_ids_for_catalog_item(self, id, filter=None, page_cursor=None, sort=None) -> dict[str, Any]:
2672
2450
  """
2673
2451
  Retrieves variant relationships for a catalog item with optional filtering, pagination, and sorting parameters.
2674
2452
 
@@ -2687,22 +2465,12 @@ class KlaviyoApp(APIApplication):
2687
2465
  if id is None:
2688
2466
  raise ValueError("Missing required parameter 'id'")
2689
2467
  url = f"{self.base_url}/api/catalog-items/{id}/relationships/variants"
2690
- query_params = {
2691
- k: v
2692
- for k, v in [
2693
- ("filter", filter),
2694
- ("page[cursor]", page_cursor),
2695
- ("sort", sort),
2696
- ]
2697
- if v is not None
2698
- }
2468
+ query_params = {k: v for k, v in [("filter", filter), ("page[cursor]", page_cursor), ("sort", sort)] if v is not None}
2699
2469
  response = self._get(url, params=query_params)
2700
2470
  response.raise_for_status()
2701
2471
  return response.json()
2702
2472
 
2703
- def get_catalog_categories(
2704
- self, fields_catalog_category=None, filter=None, page_cursor=None, sort=None
2705
- ) -> dict[str, Any]:
2473
+ async def get_catalog_categories(self, fields_catalog_category=None, filter=None, page_cursor=None, sort=None) -> dict[str, Any]:
2706
2474
  """
2707
2475
  The "/api/catalog-categories" API operation using the "GET" method retrieves a list of catalog categories, allowing filtering, sorting, and pagination through query parameters, while also supporting revision specification via a header.
2708
2476
 
@@ -2733,7 +2501,7 @@ class KlaviyoApp(APIApplication):
2733
2501
  response.raise_for_status()
2734
2502
  return response.json()
2735
2503
 
2736
- def create_catalog_category(self, data=None) -> dict[str, Any]:
2504
+ async def create_catalog_category(self, data=None) -> dict[str, Any]:
2737
2505
  """
2738
2506
  Creates a new catalog category using specified parameters, returning a 201 status code on successful creation.
2739
2507
 
@@ -2774,9 +2542,7 @@ class KlaviyoApp(APIApplication):
2774
2542
  Tags:
2775
2543
  Catalogs, Categories
2776
2544
  """
2777
- request_body = {
2778
- "data": data,
2779
- }
2545
+ request_body = {"data": data}
2780
2546
  request_body = {k: v for k, v in request_body.items() if v is not None}
2781
2547
  url = f"{self.base_url}/api/catalog-categories"
2782
2548
  query_params = {}
@@ -2784,7 +2550,7 @@ class KlaviyoApp(APIApplication):
2784
2550
  response.raise_for_status()
2785
2551
  return response.json()
2786
2552
 
2787
- def get_catalog_category(self, id, fields_catalog_category=None) -> dict[str, Any]:
2553
+ async def get_catalog_category(self, id, fields_catalog_category=None) -> dict[str, Any]:
2788
2554
  """
2789
2555
  Retrieves a specific catalog category by ID with optional field selection and revision header.
2790
2556
 
@@ -2801,16 +2567,12 @@ class KlaviyoApp(APIApplication):
2801
2567
  if id is None:
2802
2568
  raise ValueError("Missing required parameter 'id'")
2803
2569
  url = f"{self.base_url}/api/catalog-categories/{id}"
2804
- query_params = {
2805
- k: v
2806
- for k, v in [("fields[catalog-category]", fields_catalog_category)]
2807
- if v is not None
2808
- }
2570
+ query_params = {k: v for k, v in [("fields[catalog-category]", fields_catalog_category)] if v is not None}
2809
2571
  response = self._get(url, params=query_params)
2810
2572
  response.raise_for_status()
2811
2573
  return response.json()
2812
2574
 
2813
- def delete_catalog_category(self, id) -> Any:
2575
+ async def delete_catalog_category(self, id) -> Any:
2814
2576
  """
2815
2577
  Deletes a catalog category identified by its ID, accepting an optional revision header, and returns a successful response with a 204 status code if executed correctly.
2816
2578
 
@@ -2831,7 +2593,7 @@ class KlaviyoApp(APIApplication):
2831
2593
  response.raise_for_status()
2832
2594
  return response.json()
2833
2595
 
2834
- def update_catalog_category(self, id, data=None) -> dict[str, Any]:
2596
+ async def update_catalog_category(self, id, data=None) -> dict[str, Any]:
2835
2597
  """
2836
2598
  Patches a catalog category with the specified ID, allowing partial updates while requiring a revision header for version control.
2837
2599
 
@@ -2873,9 +2635,7 @@ class KlaviyoApp(APIApplication):
2873
2635
  """
2874
2636
  if id is None:
2875
2637
  raise ValueError("Missing required parameter 'id'")
2876
- request_body = {
2877
- "data": data,
2878
- }
2638
+ request_body = {"data": data}
2879
2639
  request_body = {k: v for k, v in request_body.items() if v is not None}
2880
2640
  url = f"{self.base_url}/api/catalog-categories/{id}"
2881
2641
  query_params = {}
@@ -2883,11 +2643,8 @@ class KlaviyoApp(APIApplication):
2883
2643
  response.raise_for_status()
2884
2644
  return response.json()
2885
2645
 
2886
- def get_create_categories_jobs(
2887
- self,
2888
- fields_catalog_category_bulk_create_job=None,
2889
- filter=None,
2890
- page_cursor=None,
2646
+ async def get_create_categories_jobs(
2647
+ self, fields_catalog_category_bulk_create_job=None, filter=None, page_cursor=None
2891
2648
  ) -> dict[str, Any]:
2892
2649
  """
2893
2650
  Retrieves a list of catalog category bulk creation jobs with support for filtering, field selection, pagination via cursor, and revision headers.
@@ -2907,10 +2664,7 @@ class KlaviyoApp(APIApplication):
2907
2664
  query_params = {
2908
2665
  k: v
2909
2666
  for k, v in [
2910
- (
2911
- "fields[catalog-category-bulk-create-job]",
2912
- fields_catalog_category_bulk_create_job,
2913
- ),
2667
+ ("fields[catalog-category-bulk-create-job]", fields_catalog_category_bulk_create_job),
2914
2668
  ("filter", filter),
2915
2669
  ("page[cursor]", page_cursor),
2916
2670
  ]
@@ -2920,7 +2674,7 @@ class KlaviyoApp(APIApplication):
2920
2674
  response.raise_for_status()
2921
2675
  return response.json()
2922
2676
 
2923
- def bulk_create_catalog_categories(self, data=None) -> dict[str, Any]:
2677
+ async def bulk_create_catalog_categories(self, data=None) -> dict[str, Any]:
2924
2678
  """
2925
2679
  Create bulk jobs for catalog category creation, tracking progress via asynchronous processing.
2926
2680
 
@@ -2993,9 +2747,7 @@ class KlaviyoApp(APIApplication):
2993
2747
  Tags:
2994
2748
  Catalogs, Categories
2995
2749
  """
2996
- request_body = {
2997
- "data": data,
2998
- }
2750
+ request_body = {"data": data}
2999
2751
  request_body = {k: v for k, v in request_body.items() if v is not None}
3000
2752
  url = f"{self.base_url}/api/catalog-category-bulk-create-jobs"
3001
2753
  query_params = {}
@@ -3003,12 +2755,8 @@ class KlaviyoApp(APIApplication):
3003
2755
  response.raise_for_status()
3004
2756
  return response.json()
3005
2757
 
3006
- def get_create_categories_job(
3007
- self,
3008
- job_id,
3009
- fields_catalog_category_bulk_create_job=None,
3010
- fields_catalog_category=None,
3011
- include=None,
2758
+ async def get_create_categories_job(
2759
+ self, job_id, fields_catalog_category_bulk_create_job=None, fields_catalog_category=None, include=None
3012
2760
  ) -> dict[str, Any]:
3013
2761
  """
3014
2762
  The **`GET /api/catalog-category-bulk-create-jobs/{job_id}`** operation retrieves a specific catalog category bulk create job by its job ID, optionally including related resources such as categories based on the provided query parameters.
@@ -3031,10 +2779,7 @@ class KlaviyoApp(APIApplication):
3031
2779
  query_params = {
3032
2780
  k: v
3033
2781
  for k, v in [
3034
- (
3035
- "fields[catalog-category-bulk-create-job]",
3036
- fields_catalog_category_bulk_create_job,
3037
- ),
2782
+ ("fields[catalog-category-bulk-create-job]", fields_catalog_category_bulk_create_job),
3038
2783
  ("fields[catalog-category]", fields_catalog_category),
3039
2784
  ("include", include),
3040
2785
  ]
@@ -3044,11 +2789,8 @@ class KlaviyoApp(APIApplication):
3044
2789
  response.raise_for_status()
3045
2790
  return response.json()
3046
2791
 
3047
- def get_update_categories_jobs(
3048
- self,
3049
- fields_catalog_category_bulk_update_job=None,
3050
- filter=None,
3051
- page_cursor=None,
2792
+ async def get_update_categories_jobs(
2793
+ self, fields_catalog_category_bulk_update_job=None, filter=None, page_cursor=None
3052
2794
  ) -> dict[str, Any]:
3053
2795
  """
3054
2796
  The API operation at "/api/catalog-category-bulk-update-jobs" using the "GET" method retrieves details of catalog category bulk update jobs, allowing for customization through query parameters such as fields, filters, and pagination, while also accepting a revision header.
@@ -3068,10 +2810,7 @@ class KlaviyoApp(APIApplication):
3068
2810
  query_params = {
3069
2811
  k: v
3070
2812
  for k, v in [
3071
- (
3072
- "fields[catalog-category-bulk-update-job]",
3073
- fields_catalog_category_bulk_update_job,
3074
- ),
2813
+ ("fields[catalog-category-bulk-update-job]", fields_catalog_category_bulk_update_job),
3075
2814
  ("filter", filter),
3076
2815
  ("page[cursor]", page_cursor),
3077
2816
  ]
@@ -3081,7 +2820,7 @@ class KlaviyoApp(APIApplication):
3081
2820
  response.raise_for_status()
3082
2821
  return response.json()
3083
2822
 
3084
- def bulk_update_catalog_categories(self, data=None) -> dict[str, Any]:
2823
+ async def bulk_update_catalog_categories(self, data=None) -> dict[str, Any]:
3085
2824
  """
3086
2825
  This API operation initiates a bulk update job for catalog categories, allowing for the modification of multiple categories simultaneously, with an optional revision header for version control.
3087
2826
 
@@ -3150,9 +2889,7 @@ class KlaviyoApp(APIApplication):
3150
2889
  Tags:
3151
2890
  Catalogs, Categories
3152
2891
  """
3153
- request_body = {
3154
- "data": data,
3155
- }
2892
+ request_body = {"data": data}
3156
2893
  request_body = {k: v for k, v in request_body.items() if v is not None}
3157
2894
  url = f"{self.base_url}/api/catalog-category-bulk-update-jobs"
3158
2895
  query_params = {}
@@ -3160,12 +2897,8 @@ class KlaviyoApp(APIApplication):
3160
2897
  response.raise_for_status()
3161
2898
  return response.json()
3162
2899
 
3163
- def get_update_categories_job(
3164
- self,
3165
- job_id,
3166
- fields_catalog_category_bulk_update_job=None,
3167
- fields_catalog_category=None,
3168
- include=None,
2900
+ async def get_update_categories_job(
2901
+ self, job_id, fields_catalog_category_bulk_update_job=None, fields_catalog_category=None, include=None
3169
2902
  ) -> dict[str, Any]:
3170
2903
  """
3171
2904
  Retrieve the status and details of a specific catalog category bulk update job by its ID, supporting optional inclusion of related resources and field filtering.
@@ -3188,10 +2921,7 @@ class KlaviyoApp(APIApplication):
3188
2921
  query_params = {
3189
2922
  k: v
3190
2923
  for k, v in [
3191
- (
3192
- "fields[catalog-category-bulk-update-job]",
3193
- fields_catalog_category_bulk_update_job,
3194
- ),
2924
+ ("fields[catalog-category-bulk-update-job]", fields_catalog_category_bulk_update_job),
3195
2925
  ("fields[catalog-category]", fields_catalog_category),
3196
2926
  ("include", include),
3197
2927
  ]
@@ -3201,11 +2931,8 @@ class KlaviyoApp(APIApplication):
3201
2931
  response.raise_for_status()
3202
2932
  return response.json()
3203
2933
 
3204
- def get_delete_categories_jobs(
3205
- self,
3206
- fields_catalog_category_bulk_delete_job=None,
3207
- filter=None,
3208
- page_cursor=None,
2934
+ async def get_delete_categories_jobs(
2935
+ self, fields_catalog_category_bulk_delete_job=None, filter=None, page_cursor=None
3209
2936
  ) -> dict[str, Any]:
3210
2937
  """
3211
2938
  Retrieves a list of catalog category bulk delete jobs based on specified fields, filters, and pagination, with an optional revision header.
@@ -3225,10 +2952,7 @@ class KlaviyoApp(APIApplication):
3225
2952
  query_params = {
3226
2953
  k: v
3227
2954
  for k, v in [
3228
- (
3229
- "fields[catalog-category-bulk-delete-job]",
3230
- fields_catalog_category_bulk_delete_job,
3231
- ),
2955
+ ("fields[catalog-category-bulk-delete-job]", fields_catalog_category_bulk_delete_job),
3232
2956
  ("filter", filter),
3233
2957
  ("page[cursor]", page_cursor),
3234
2958
  ]
@@ -3238,7 +2962,7 @@ class KlaviyoApp(APIApplication):
3238
2962
  response.raise_for_status()
3239
2963
  return response.json()
3240
2964
 
3241
- def bulk_delete_catalog_categories(self, data=None) -> dict[str, Any]:
2965
+ async def bulk_delete_catalog_categories(self, data=None) -> dict[str, Any]:
3242
2966
  """
3243
2967
  Creates a catalog category bulk delete job to delete a batch of categories, accepting up to 100 per request and requiring a revision header.
3244
2968
 
@@ -3273,9 +2997,7 @@ class KlaviyoApp(APIApplication):
3273
2997
  Tags:
3274
2998
  Catalogs, Categories
3275
2999
  """
3276
- request_body = {
3277
- "data": data,
3278
- }
3000
+ request_body = {"data": data}
3279
3001
  request_body = {k: v for k, v in request_body.items() if v is not None}
3280
3002
  url = f"{self.base_url}/api/catalog-category-bulk-delete-jobs"
3281
3003
  query_params = {}
@@ -3283,9 +3005,7 @@ class KlaviyoApp(APIApplication):
3283
3005
  response.raise_for_status()
3284
3006
  return response.json()
3285
3007
 
3286
- def get_delete_categories_job(
3287
- self, job_id, fields_catalog_category_bulk_delete_job=None
3288
- ) -> dict[str, Any]:
3008
+ async def get_delete_categories_job(self, job_id, fields_catalog_category_bulk_delete_job=None) -> dict[str, Any]:
3289
3009
  """
3290
3010
  Retrieves the status and details of a specific catalog category bulk delete job using the provided job ID, with optional field filtering and API version control.
3291
3011
 
@@ -3303,22 +3023,13 @@ class KlaviyoApp(APIApplication):
3303
3023
  raise ValueError("Missing required parameter 'job_id'")
3304
3024
  url = f"{self.base_url}/api/catalog-category-bulk-delete-jobs/{job_id}"
3305
3025
  query_params = {
3306
- k: v
3307
- for k, v in [
3308
- (
3309
- "fields[catalog-category-bulk-delete-job]",
3310
- fields_catalog_category_bulk_delete_job,
3311
- )
3312
- ]
3313
- if v is not None
3026
+ k: v for k, v in [("fields[catalog-category-bulk-delete-job]", fields_catalog_category_bulk_delete_job)] if v is not None
3314
3027
  }
3315
3028
  response = self._get(url, params=query_params)
3316
3029
  response.raise_for_status()
3317
3030
  return response.json()
3318
3031
 
3319
- def get_item_ids_for_catalog_category(
3320
- self, id, filter=None, page_cursor=None, sort=None
3321
- ) -> dict[str, Any]:
3032
+ async def get_item_ids_for_catalog_category(self, id, filter=None, page_cursor=None, sort=None) -> dict[str, Any]:
3322
3033
  """
3323
3034
  Retrieves a list of items related to a specific catalog category with options to filter, sort, and paginate the results.
3324
3035
 
@@ -3337,20 +3048,12 @@ class KlaviyoApp(APIApplication):
3337
3048
  if id is None:
3338
3049
  raise ValueError("Missing required parameter 'id'")
3339
3050
  url = f"{self.base_url}/api/catalog-categories/{id}/relationships/items"
3340
- query_params = {
3341
- k: v
3342
- for k, v in [
3343
- ("filter", filter),
3344
- ("page[cursor]", page_cursor),
3345
- ("sort", sort),
3346
- ]
3347
- if v is not None
3348
- }
3051
+ query_params = {k: v for k, v in [("filter", filter), ("page[cursor]", page_cursor), ("sort", sort)] if v is not None}
3349
3052
  response = self._get(url, params=query_params)
3350
3053
  response.raise_for_status()
3351
3054
  return response.json()
3352
3055
 
3353
- def add_items_to_catalog_category(self, id, data=None) -> Any:
3056
+ async def add_items_to_catalog_category(self, id, data=None) -> Any:
3354
3057
  """
3355
3058
  This API operation creates a new relationship between a specified catalog category and items using the POST method, requiring a revision header, and returns a 204 No Content response upon success.
3356
3059
 
@@ -3381,9 +3084,7 @@ class KlaviyoApp(APIApplication):
3381
3084
  """
3382
3085
  if id is None:
3383
3086
  raise ValueError("Missing required parameter 'id'")
3384
- request_body = {
3385
- "data": data,
3386
- }
3087
+ request_body = {"data": data}
3387
3088
  request_body = {k: v for k, v in request_body.items() if v is not None}
3388
3089
  url = f"{self.base_url}/api/catalog-categories/{id}/relationships/items"
3389
3090
  query_params = {}
@@ -3391,7 +3092,7 @@ class KlaviyoApp(APIApplication):
3391
3092
  response.raise_for_status()
3392
3093
  return response.json()
3393
3094
 
3394
- def remove_items_from_catalog_category(self, id, data=None) -> Any:
3095
+ async def remove_items_from_catalog_category(self, id, data=None) -> Any:
3395
3096
  """
3396
3097
  Deletes the relationship between a catalog category and its associated items, identified by the category ID provided in the path, and returns a successful response with no content upon completion.
3397
3098
 
@@ -3422,9 +3123,7 @@ class KlaviyoApp(APIApplication):
3422
3123
  """
3423
3124
  if id is None:
3424
3125
  raise ValueError("Missing required parameter 'id'")
3425
- request_body = {
3426
- "data": data,
3427
- }
3126
+ request_body = {"data": data}
3428
3127
  request_body = {k: v for k, v in request_body.items() if v is not None}
3429
3128
  url = f"{self.base_url}/api/catalog-categories/{id}/relationships/items"
3430
3129
  query_params = {}
@@ -3432,7 +3131,7 @@ class KlaviyoApp(APIApplication):
3432
3131
  response.raise_for_status()
3433
3132
  return response.json()
3434
3133
 
3435
- def update_items_for_catalog_category(self, id, data=None) -> Any:
3134
+ async def update_items_for_catalog_category(self, id, data=None) -> Any:
3436
3135
  """
3437
3136
  This API operation updates the items relationship of a catalog category with the specified ID using the PATCH method, requiring a revision header to ensure atomic updates, and returns a 204 No Content response upon success.
3438
3137
 
@@ -3463,9 +3162,7 @@ class KlaviyoApp(APIApplication):
3463
3162
  """
3464
3163
  if id is None:
3465
3164
  raise ValueError("Missing required parameter 'id'")
3466
- request_body = {
3467
- "data": data,
3468
- }
3165
+ request_body = {"data": data}
3469
3166
  request_body = {k: v for k, v in request_body.items() if v is not None}
3470
3167
  url = f"{self.base_url}/api/catalog-categories/{id}/relationships/items"
3471
3168
  query_params = {}
@@ -3473,7 +3170,7 @@ class KlaviyoApp(APIApplication):
3473
3170
  response.raise_for_status()
3474
3171
  return response.json()
3475
3172
 
3476
- def get_categories_for_catalog_item(
3173
+ async def get_categories_for_catalog_item(
3477
3174
  self, id, fields_catalog_category=None, filter=None, page_cursor=None, sort=None
3478
3175
  ) -> dict[str, Any]:
3479
3176
  """
@@ -3509,7 +3206,7 @@ class KlaviyoApp(APIApplication):
3509
3206
  response.raise_for_status()
3510
3207
  return response.json()
3511
3208
 
3512
- def create_back_in_stock_subscription(self, data=None) -> Any:
3209
+ async def create_back_in_stock_subscription(self, data=None) -> Any:
3513
3210
  """
3514
3211
  The POST operation at the "/api/back-in-stock-subscriptions" path creates a new back-in-stock subscription, requiring a "revision" header, and returns a 202 response upon success or error responses for bad requests or internal server errors.
3515
3212
 
@@ -3556,9 +3253,7 @@ class KlaviyoApp(APIApplication):
3556
3253
  Tags:
3557
3254
  Catalogs, Back In Stock
3558
3255
  """
3559
- request_body = {
3560
- "data": data,
3561
- }
3256
+ request_body = {"data": data}
3562
3257
  request_body = {k: v for k, v in request_body.items() if v is not None}
3563
3258
  url = f"{self.base_url}/api/back-in-stock-subscriptions"
3564
3259
  query_params = {}
@@ -3566,7 +3261,7 @@ class KlaviyoApp(APIApplication):
3566
3261
  response.raise_for_status()
3567
3262
  return response.json()
3568
3263
 
3569
- def create_client_subscription(self, company_id=None, data=None) -> Any:
3264
+ async def create_client_subscription(self, company_id=None, data=None) -> Any:
3570
3265
  """
3571
3266
  Creates a subscription for a client, requiring a company_id query parameter and revision header while returning a 202 Accepted status upon successful request.
3572
3267
 
@@ -3656,9 +3351,7 @@ class KlaviyoApp(APIApplication):
3656
3351
  Tags:
3657
3352
  Client
3658
3353
  """
3659
- request_body = {
3660
- "data": data,
3661
- }
3354
+ request_body = {"data": data}
3662
3355
  request_body = {k: v for k, v in request_body.items() if v is not None}
3663
3356
  url = f"{self.base_url}/client/subscriptions"
3664
3357
  query_params = {k: v for k, v in [("company_id", company_id)] if v is not None}
@@ -3666,7 +3359,7 @@ class KlaviyoApp(APIApplication):
3666
3359
  response.raise_for_status()
3667
3360
  return response.json()
3668
3361
 
3669
- def create_or_update_client_push_token(self, company_id=None, data=None) -> Any:
3362
+ async def create_or_update_client_push_token(self, company_id=None, data=None) -> Any:
3670
3363
  """
3671
3364
  Registers a push token for a client by sending a POST request to "/client/push-tokens," which requires a "company_id" query parameter and a "revision" header, returning a 202 status on success.
3672
3365
 
@@ -3748,9 +3441,7 @@ class KlaviyoApp(APIApplication):
3748
3441
  Tags:
3749
3442
  Client
3750
3443
  """
3751
- request_body = {
3752
- "data": data,
3753
- }
3444
+ request_body = {"data": data}
3754
3445
  request_body = {k: v for k, v in request_body.items() if v is not None}
3755
3446
  url = f"{self.base_url}/client/push-tokens"
3756
3447
  query_params = {k: v for k, v in [("company_id", company_id)] if v is not None}
@@ -3758,7 +3449,7 @@ class KlaviyoApp(APIApplication):
3758
3449
  response.raise_for_status()
3759
3450
  return response.json()
3760
3451
 
3761
- def unregister_client_push_token(self, company_id=None, data=None) -> Any:
3452
+ async def unregister_client_push_token(self, company_id=None, data=None) -> Any:
3762
3453
  """
3763
3454
  Unregisters a client's push token by accepting a company ID as a query parameter and requiring a revision header, returning status codes for successful acceptance (202), client errors (400), or server errors (500).
3764
3455
 
@@ -3824,9 +3515,7 @@ class KlaviyoApp(APIApplication):
3824
3515
  Tags:
3825
3516
  Client
3826
3517
  """
3827
- request_body = {
3828
- "data": data,
3829
- }
3518
+ request_body = {"data": data}
3830
3519
  request_body = {k: v for k, v in request_body.items() if v is not None}
3831
3520
  url = f"{self.base_url}/client/push-token-unregister"
3832
3521
  query_params = {k: v for k, v in [("company_id", company_id)] if v is not None}
@@ -3834,7 +3523,7 @@ class KlaviyoApp(APIApplication):
3834
3523
  response.raise_for_status()
3835
3524
  return response.json()
3836
3525
 
3837
- def create_client_event(self, company_id=None, data=None) -> Any:
3526
+ async def create_client_event(self, company_id=None, data=None) -> Any:
3838
3527
  """
3839
3528
  Creates an event for a client by submitting the event details via the POST method, requiring a `company_id` query parameter and a `revision` header.
3840
3529
 
@@ -3911,9 +3600,7 @@ class KlaviyoApp(APIApplication):
3911
3600
  Tags:
3912
3601
  Client
3913
3602
  """
3914
- request_body = {
3915
- "data": data,
3916
- }
3603
+ request_body = {"data": data}
3917
3604
  request_body = {k: v for k, v in request_body.items() if v is not None}
3918
3605
  url = f"{self.base_url}/client/events"
3919
3606
  query_params = {k: v for k, v in [("company_id", company_id)] if v is not None}
@@ -3921,7 +3608,7 @@ class KlaviyoApp(APIApplication):
3921
3608
  response.raise_for_status()
3922
3609
  return response.json()
3923
3610
 
3924
- def create_or_update_client_profile(self, company_id=None, data=None) -> Any:
3611
+ async def create_or_update_client_profile(self, company_id=None, data=None) -> Any:
3925
3612
  """
3926
3613
  Creates client profiles with required company_id in query parameters and revision header, returning status codes for accepted (202), bad request (400), and server error (500).
3927
3614
 
@@ -3977,9 +3664,7 @@ class KlaviyoApp(APIApplication):
3977
3664
  Tags:
3978
3665
  Client
3979
3666
  """
3980
- request_body = {
3981
- "data": data,
3982
- }
3667
+ request_body = {"data": data}
3983
3668
  request_body = {k: v for k, v in request_body.items() if v is not None}
3984
3669
  url = f"{self.base_url}/client/profiles"
3985
3670
  query_params = {k: v for k, v in [("company_id", company_id)] if v is not None}
@@ -3987,7 +3672,7 @@ class KlaviyoApp(APIApplication):
3987
3672
  response.raise_for_status()
3988
3673
  return response.json()
3989
3674
 
3990
- def bulk_create_client_events(self, company_id=None, data=None) -> Any:
3675
+ async def bulk_create_client_events(self, company_id=None, data=None) -> Any:
3991
3676
  """
3992
3677
  Creates multiple client events in bulk using a POST request, requiring a company ID as a query parameter and a revision in the request header.
3993
3678
 
@@ -4092,9 +3777,7 @@ class KlaviyoApp(APIApplication):
4092
3777
  Tags:
4093
3778
  Client
4094
3779
  """
4095
- request_body = {
4096
- "data": data,
4097
- }
3780
+ request_body = {"data": data}
4098
3781
  request_body = {k: v for k, v in request_body.items() if v is not None}
4099
3782
  url = f"{self.base_url}/client/event-bulk-create"
4100
3783
  query_params = {k: v for k, v in [("company_id", company_id)] if v is not None}
@@ -4102,9 +3785,7 @@ class KlaviyoApp(APIApplication):
4102
3785
  response.raise_for_status()
4103
3786
  return response.json()
4104
3787
 
4105
- def create_client_back_in_stock_subscription(
4106
- self, company_id=None, data=None
4107
- ) -> Any:
3788
+ async def create_client_back_in_stock_subscription(self, company_id=None, data=None) -> Any:
4108
3789
  """
4109
3790
  Subscribe a customer to receive back-in-stock notifications for a product via POST request, requiring company ID and revision header, with responses indicating acceptance (202), invalid parameters (400), or server errors (500).
4110
3791
 
@@ -4152,9 +3833,7 @@ class KlaviyoApp(APIApplication):
4152
3833
  Tags:
4153
3834
  Client
4154
3835
  """
4155
- request_body = {
4156
- "data": data,
4157
- }
3836
+ request_body = {"data": data}
4158
3837
  request_body = {k: v for k, v in request_body.items() if v is not None}
4159
3838
  url = f"{self.base_url}/client/back-in-stock-subscriptions"
4160
3839
  query_params = {k: v for k, v in [("company_id", company_id)] if v is not None}
@@ -4162,7 +3841,7 @@ class KlaviyoApp(APIApplication):
4162
3841
  response.raise_for_status()
4163
3842
  return response.json()
4164
3843
 
4165
- def get_coupons(self, fields_coupon=None, page_cursor=None) -> dict[str, Any]:
3844
+ async def get_coupons(self, fields_coupon=None, page_cursor=None) -> dict[str, Any]:
4166
3845
  """
4167
3846
  The API operation at "/api/coupons" using the "GET" method retrieves coupon data based on optional query parameters for selecting fields and pagination, with an additional header option for specifying the revision.
4168
3847
 
@@ -4177,19 +3856,12 @@ class KlaviyoApp(APIApplication):
4177
3856
  Coupons
4178
3857
  """
4179
3858
  url = f"{self.base_url}/api/coupons"
4180
- query_params = {
4181
- k: v
4182
- for k, v in [
4183
- ("fields[coupon]", fields_coupon),
4184
- ("page[cursor]", page_cursor),
4185
- ]
4186
- if v is not None
4187
- }
3859
+ query_params = {k: v for k, v in [("fields[coupon]", fields_coupon), ("page[cursor]", page_cursor)] if v is not None}
4188
3860
  response = self._get(url, params=query_params)
4189
3861
  response.raise_for_status()
4190
3862
  return response.json()
4191
3863
 
4192
- def create_coupon(self, data=None) -> dict[str, Any]:
3864
+ async def create_coupon(self, data=None) -> dict[str, Any]:
4193
3865
  """
4194
3866
  Creates a new coupon with a specified revision, returning a successful creation response or error messages for invalid requests or internal server errors.
4195
3867
 
@@ -4214,9 +3886,7 @@ class KlaviyoApp(APIApplication):
4214
3886
  Tags:
4215
3887
  Coupons
4216
3888
  """
4217
- request_body = {
4218
- "data": data,
4219
- }
3889
+ request_body = {"data": data}
4220
3890
  request_body = {k: v for k, v in request_body.items() if v is not None}
4221
3891
  url = f"{self.base_url}/api/coupons"
4222
3892
  query_params = {}
@@ -4224,7 +3894,7 @@ class KlaviyoApp(APIApplication):
4224
3894
  response.raise_for_status()
4225
3895
  return response.json()
4226
3896
 
4227
- def get_coupon(self, id, fields_coupon=None) -> dict[str, Any]:
3897
+ async def get_coupon(self, id, fields_coupon=None) -> dict[str, Any]:
4228
3898
  """
4229
3899
  This API operation, located at `/api/coupons/{id}`, uses the GET method to retrieve details of a specific coupon based on its ID, allowing optional filtering by specifying coupon fields in the query and providing a revision in the headers.
4230
3900
 
@@ -4241,14 +3911,12 @@ class KlaviyoApp(APIApplication):
4241
3911
  if id is None:
4242
3912
  raise ValueError("Missing required parameter 'id'")
4243
3913
  url = f"{self.base_url}/api/coupons/{id}"
4244
- query_params = {
4245
- k: v for k, v in [("fields[coupon]", fields_coupon)] if v is not None
4246
- }
3914
+ query_params = {k: v for k, v in [("fields[coupon]", fields_coupon)] if v is not None}
4247
3915
  response = self._get(url, params=query_params)
4248
3916
  response.raise_for_status()
4249
3917
  return response.json()
4250
3918
 
4251
- def delete_coupon(self, id) -> Any:
3919
+ async def delete_coupon(self, id) -> Any:
4252
3920
  """
4253
3921
  Deletes a coupon by ID, returning a 204 status code on success, and requires a revision header; error responses include 400 for invalid requests and 500 for server errors.
4254
3922
 
@@ -4269,7 +3937,7 @@ class KlaviyoApp(APIApplication):
4269
3937
  response.raise_for_status()
4270
3938
  return response.json()
4271
3939
 
4272
- def update_coupon(self, id, data=None) -> dict[str, Any]:
3940
+ async def update_coupon(self, id, data=None) -> dict[str, Any]:
4273
3941
  """
4274
3942
  Updates partial coupon data using the specified revision header, returning 200 for success, 400 for invalid requests, or 500 for errors.
4275
3943
 
@@ -4297,9 +3965,7 @@ class KlaviyoApp(APIApplication):
4297
3965
  """
4298
3966
  if id is None:
4299
3967
  raise ValueError("Missing required parameter 'id'")
4300
- request_body = {
4301
- "data": data,
4302
- }
3968
+ request_body = {"data": data}
4303
3969
  request_body = {k: v for k, v in request_body.items() if v is not None}
4304
3970
  url = f"{self.base_url}/api/coupons/{id}"
4305
3971
  query_params = {}
@@ -4307,13 +3973,8 @@ class KlaviyoApp(APIApplication):
4307
3973
  response.raise_for_status()
4308
3974
  return response.json()
4309
3975
 
4310
- def get_coupon_codes(
4311
- self,
4312
- fields_coupon_code=None,
4313
- fields_coupon=None,
4314
- filter=None,
4315
- include=None,
4316
- page_cursor=None,
3976
+ async def get_coupon_codes(
3977
+ self, fields_coupon_code=None, fields_coupon=None, filter=None, include=None, page_cursor=None
4317
3978
  ) -> dict[str, Any]:
4318
3979
  """
4319
3980
  This API operation retrieves a list of coupon codes using the GET method at the "/api/coupon-codes" path, supporting filters and pagination through query parameters such as fields, filter, include, and page cursor, with a required revision header.
@@ -4347,7 +4008,7 @@ class KlaviyoApp(APIApplication):
4347
4008
  response.raise_for_status()
4348
4009
  return response.json()
4349
4010
 
4350
- def create_coupon_code(self, data=None) -> dict[str, Any]:
4011
+ async def create_coupon_code(self, data=None) -> dict[str, Any]:
4351
4012
  """
4352
4013
  Create a new coupon code by sending a POST request to "/api/coupon-codes", optionally specifying a revision in the request headers.
4353
4014
 
@@ -4380,9 +4041,7 @@ class KlaviyoApp(APIApplication):
4380
4041
  Tags:
4381
4042
  Coupons
4382
4043
  """
4383
- request_body = {
4384
- "data": data,
4385
- }
4044
+ request_body = {"data": data}
4386
4045
  request_body = {k: v for k, v in request_body.items() if v is not None}
4387
4046
  url = f"{self.base_url}/api/coupon-codes"
4388
4047
  query_params = {}
@@ -4390,9 +4049,7 @@ class KlaviyoApp(APIApplication):
4390
4049
  response.raise_for_status()
4391
4050
  return response.json()
4392
4051
 
4393
- def get_coupon_code(
4394
- self, id, fields_coupon_code=None, fields_coupon=None, include=None
4395
- ) -> dict[str, Any]:
4052
+ async def get_coupon_code(self, id, fields_coupon_code=None, fields_coupon=None, include=None) -> dict[str, Any]:
4396
4053
  """
4397
4054
  Retrieves details of a coupon code by ID, allowing optional specification of fields to include and related resources via query parameters.
4398
4055
 
@@ -4413,18 +4070,14 @@ class KlaviyoApp(APIApplication):
4413
4070
  url = f"{self.base_url}/api/coupon-codes/{id}"
4414
4071
  query_params = {
4415
4072
  k: v
4416
- for k, v in [
4417
- ("fields[coupon-code]", fields_coupon_code),
4418
- ("fields[coupon]", fields_coupon),
4419
- ("include", include),
4420
- ]
4073
+ for k, v in [("fields[coupon-code]", fields_coupon_code), ("fields[coupon]", fields_coupon), ("include", include)]
4421
4074
  if v is not None
4422
4075
  }
4423
4076
  response = self._get(url, params=query_params)
4424
4077
  response.raise_for_status()
4425
4078
  return response.json()
4426
4079
 
4427
- def delete_coupon_code(self, id) -> Any:
4080
+ async def delete_coupon_code(self, id) -> Any:
4428
4081
  """
4429
4082
  Deletes a coupon code with the specified ID, returning a 204 No Content response upon successful deletion, with optional revision information provided in the request headers.
4430
4083
 
@@ -4445,7 +4098,7 @@ class KlaviyoApp(APIApplication):
4445
4098
  response.raise_for_status()
4446
4099
  return response.json()
4447
4100
 
4448
- def update_coupon_code(self, id, data=None) -> dict[str, Any]:
4101
+ async def update_coupon_code(self, id, data=None) -> dict[str, Any]:
4449
4102
  """
4450
4103
  Updates a coupon code's properties using a partial modification request, supporting conditional updates via the revision header.
4451
4104
 
@@ -4474,9 +4127,7 @@ class KlaviyoApp(APIApplication):
4474
4127
  """
4475
4128
  if id is None:
4476
4129
  raise ValueError("Missing required parameter 'id'")
4477
- request_body = {
4478
- "data": data,
4479
- }
4130
+ request_body = {"data": data}
4480
4131
  request_body = {k: v for k, v in request_body.items() if v is not None}
4481
4132
  url = f"{self.base_url}/api/coupon-codes/{id}"
4482
4133
  query_params = {}
@@ -4484,7 +4135,7 @@ class KlaviyoApp(APIApplication):
4484
4135
  response.raise_for_status()
4485
4136
  return response.json()
4486
4137
 
4487
- def get_bulk_create_coupon_code_jobs(
4138
+ async def get_bulk_create_coupon_code_jobs(
4488
4139
  self, fields_coupon_code_bulk_create_job=None, filter=None, page_cursor=None
4489
4140
  ) -> dict[str, Any]:
4490
4141
  """
@@ -4505,10 +4156,7 @@ class KlaviyoApp(APIApplication):
4505
4156
  query_params = {
4506
4157
  k: v
4507
4158
  for k, v in [
4508
- (
4509
- "fields[coupon-code-bulk-create-job]",
4510
- fields_coupon_code_bulk_create_job,
4511
- ),
4159
+ ("fields[coupon-code-bulk-create-job]", fields_coupon_code_bulk_create_job),
4512
4160
  ("filter", filter),
4513
4161
  ("page[cursor]", page_cursor),
4514
4162
  ]
@@ -4518,7 +4166,7 @@ class KlaviyoApp(APIApplication):
4518
4166
  response.raise_for_status()
4519
4167
  return response.json()
4520
4168
 
4521
- def bulk_create_coupon_codes(self, data=None) -> dict[str, Any]:
4169
+ async def bulk_create_coupon_codes(self, data=None) -> dict[str, Any]:
4522
4170
  """
4523
4171
  This API operation creates bulk jobs for coupon code creation via a POST request to the "/api/coupon-code-bulk-create-jobs" endpoint, requiring a revision header, and returns success with a 202 status code or error responses for bad requests (400) and internal server errors (500).
4524
4172
 
@@ -4575,9 +4223,7 @@ class KlaviyoApp(APIApplication):
4575
4223
  Tags:
4576
4224
  Coupons
4577
4225
  """
4578
- request_body = {
4579
- "data": data,
4580
- }
4226
+ request_body = {"data": data}
4581
4227
  request_body = {k: v for k, v in request_body.items() if v is not None}
4582
4228
  url = f"{self.base_url}/api/coupon-code-bulk-create-jobs"
4583
4229
  query_params = {}
@@ -4585,12 +4231,8 @@ class KlaviyoApp(APIApplication):
4585
4231
  response.raise_for_status()
4586
4232
  return response.json()
4587
4233
 
4588
- def get_bulk_create_coupon_codes_job(
4589
- self,
4590
- job_id,
4591
- fields_coupon_code_bulk_create_job=None,
4592
- fields_coupon_code=None,
4593
- include=None,
4234
+ async def get_bulk_create_coupon_codes_job(
4235
+ self, job_id, fields_coupon_code_bulk_create_job=None, fields_coupon_code=None, include=None
4594
4236
  ) -> dict[str, Any]:
4595
4237
  """
4596
4238
  Retrieves information about a specific coupon code bulk create job by ID, allowing optional filtering of fields and inclusion of related data.
@@ -4613,10 +4255,7 @@ class KlaviyoApp(APIApplication):
4613
4255
  query_params = {
4614
4256
  k: v
4615
4257
  for k, v in [
4616
- (
4617
- "fields[coupon-code-bulk-create-job]",
4618
- fields_coupon_code_bulk_create_job,
4619
- ),
4258
+ ("fields[coupon-code-bulk-create-job]", fields_coupon_code_bulk_create_job),
4620
4259
  ("fields[coupon-code]", fields_coupon_code),
4621
4260
  ("include", include),
4622
4261
  ]
@@ -4626,7 +4265,7 @@ class KlaviyoApp(APIApplication):
4626
4265
  response.raise_for_status()
4627
4266
  return response.json()
4628
4267
 
4629
- def get_coupon_for_coupon_code(self, id, fields_coupon=None) -> dict[str, Any]:
4268
+ async def get_coupon_for_coupon_code(self, id, fields_coupon=None) -> dict[str, Any]:
4630
4269
  """
4631
4270
  This API operation retrieves a coupon associated with a specific coupon code by its ID, allowing optional filtering of coupon fields and specifying a revision via header.
4632
4271
 
@@ -4643,14 +4282,12 @@ class KlaviyoApp(APIApplication):
4643
4282
  if id is None:
4644
4283
  raise ValueError("Missing required parameter 'id'")
4645
4284
  url = f"{self.base_url}/api/coupon-codes/{id}/coupon"
4646
- query_params = {
4647
- k: v for k, v in [("fields[coupon]", fields_coupon)] if v is not None
4648
- }
4285
+ query_params = {k: v for k, v in [("fields[coupon]", fields_coupon)] if v is not None}
4649
4286
  response = self._get(url, params=query_params)
4650
4287
  response.raise_for_status()
4651
4288
  return response.json()
4652
4289
 
4653
- def get_coupon_id_for_coupon_code(self, id) -> dict[str, Any]:
4290
+ async def get_coupon_id_for_coupon_code(self, id) -> dict[str, Any]:
4654
4291
  """
4655
4292
  Retrieves the relationship details of a specific coupon code identified by its ID.
4656
4293
 
@@ -4671,9 +4308,7 @@ class KlaviyoApp(APIApplication):
4671
4308
  response.raise_for_status()
4672
4309
  return response.json()
4673
4310
 
4674
- def get_coupon_codes_for_coupon(
4675
- self, id, fields_coupon_code=None, filter=None, page_cursor=None
4676
- ) -> dict[str, Any]:
4311
+ async def get_coupon_codes_for_coupon(self, id, fields_coupon_code=None, filter=None, page_cursor=None) -> dict[str, Any]:
4677
4312
  """
4678
4313
  Retrieves coupon codes associated with a specific coupon ID, supporting optional filtering, field selection, and pagination via cursor-based navigation.
4679
4314
 
@@ -4694,20 +4329,14 @@ class KlaviyoApp(APIApplication):
4694
4329
  url = f"{self.base_url}/api/coupons/{id}/coupon-codes"
4695
4330
  query_params = {
4696
4331
  k: v
4697
- for k, v in [
4698
- ("fields[coupon-code]", fields_coupon_code),
4699
- ("filter", filter),
4700
- ("page[cursor]", page_cursor),
4701
- ]
4332
+ for k, v in [("fields[coupon-code]", fields_coupon_code), ("filter", filter), ("page[cursor]", page_cursor)]
4702
4333
  if v is not None
4703
4334
  }
4704
4335
  response = self._get(url, params=query_params)
4705
4336
  response.raise_for_status()
4706
4337
  return response.json()
4707
4338
 
4708
- def get_coupon_code_ids_for_coupon(
4709
- self, id, filter=None, page_cursor=None
4710
- ) -> dict[str, Any]:
4339
+ async def get_coupon_code_ids_for_coupon(self, id, filter=None, page_cursor=None) -> dict[str, Any]:
4711
4340
  """
4712
4341
  This API operation retrieves the relationships between a coupon and its associated coupon codes, allowing for filtering and pagination with optional revision information provided in the request header.
4713
4342
 
@@ -4725,16 +4354,12 @@ class KlaviyoApp(APIApplication):
4725
4354
  if id is None:
4726
4355
  raise ValueError("Missing required parameter 'id'")
4727
4356
  url = f"{self.base_url}/api/coupons/{id}/relationships/coupon-codes"
4728
- query_params = {
4729
- k: v
4730
- for k, v in [("filter", filter), ("page[cursor]", page_cursor)]
4731
- if v is not None
4732
- }
4357
+ query_params = {k: v for k, v in [("filter", filter), ("page[cursor]", page_cursor)] if v is not None}
4733
4358
  response = self._get(url, params=query_params)
4734
4359
  response.raise_for_status()
4735
4360
  return response.json()
4736
4361
 
4737
- def request_profile_deletion(self, data=None) -> Any:
4362
+ async def request_profile_deletion(self, data=None) -> Any:
4738
4363
  """
4739
4364
  Initiates an asynchronous data privacy deletion job with optional revision control via header parameter.
4740
4365
 
@@ -4767,9 +4392,7 @@ class KlaviyoApp(APIApplication):
4767
4392
  Tags:
4768
4393
  Data Privacy
4769
4394
  """
4770
- request_body = {
4771
- "data": data,
4772
- }
4395
+ request_body = {"data": data}
4773
4396
  request_body = {k: v for k, v in request_body.items() if v is not None}
4774
4397
  url = f"{self.base_url}/api/data-privacy-deletion-jobs"
4775
4398
  query_params = {}
@@ -4777,15 +4400,8 @@ class KlaviyoApp(APIApplication):
4777
4400
  response.raise_for_status()
4778
4401
  return response.json()
4779
4402
 
4780
- def get_events(
4781
- self,
4782
- fields_event=None,
4783
- fields_metric=None,
4784
- fields_profile=None,
4785
- filter=None,
4786
- include=None,
4787
- page_cursor=None,
4788
- sort=None,
4403
+ async def get_events(
4404
+ self, fields_event=None, fields_metric=None, fields_profile=None, filter=None, include=None, page_cursor=None, sort=None
4789
4405
  ) -> dict[str, Any]:
4790
4406
  """
4791
4407
  Retrieves a filtered list of events with customizable fields, pagination, sorting, and related resources.
@@ -4823,7 +4439,7 @@ class KlaviyoApp(APIApplication):
4823
4439
  response.raise_for_status()
4824
4440
  return response.json()
4825
4441
 
4826
- def create_event(self, data=None) -> Any:
4442
+ async def create_event(self, data=None) -> Any:
4827
4443
  """
4828
4444
  Create a new event by sending a POST request to the `/api/events` endpoint, which includes a `revision` header and returns success with a 202 status code, or error responses for bad requests (400) or internal server errors (500).
4829
4445
 
@@ -4899,9 +4515,7 @@ class KlaviyoApp(APIApplication):
4899
4515
  Tags:
4900
4516
  Events
4901
4517
  """
4902
- request_body = {
4903
- "data": data,
4904
- }
4518
+ request_body = {"data": data}
4905
4519
  request_body = {k: v for k, v in request_body.items() if v is not None}
4906
4520
  url = f"{self.base_url}/api/events"
4907
4521
  query_params = {}
@@ -4909,14 +4523,7 @@ class KlaviyoApp(APIApplication):
4909
4523
  response.raise_for_status()
4910
4524
  return response.json()
4911
4525
 
4912
- def get_event(
4913
- self,
4914
- id,
4915
- fields_event=None,
4916
- fields_metric=None,
4917
- fields_profile=None,
4918
- include=None,
4919
- ) -> dict[str, Any]:
4526
+ async def get_event(self, id, fields_event=None, fields_metric=None, fields_profile=None, include=None) -> dict[str, Any]:
4920
4527
  """
4921
4528
  Retrieves a specific event by its ID, with optional filtering for fields and inclusion of related data.
4922
4529
 
@@ -4950,7 +4557,7 @@ class KlaviyoApp(APIApplication):
4950
4557
  response.raise_for_status()
4951
4558
  return response.json()
4952
4559
 
4953
- def bulk_create_events(self, data=None) -> Any:
4560
+ async def bulk_create_events(self, data=None) -> Any:
4954
4561
  """
4955
4562
  Creates a batch of events asynchronously via a bulk job with a version-controlled header (revision) and returns status codes for acceptance (202), invalid requests (400), or server errors (500).
4956
4563
 
@@ -5149,9 +4756,7 @@ class KlaviyoApp(APIApplication):
5149
4756
  Tags:
5150
4757
  Events
5151
4758
  """
5152
- request_body = {
5153
- "data": data,
5154
- }
4759
+ request_body = {"data": data}
5155
4760
  request_body = {k: v for k, v in request_body.items() if v is not None}
5156
4761
  url = f"{self.base_url}/api/event-bulk-create-jobs"
5157
4762
  query_params = {}
@@ -5159,7 +4764,7 @@ class KlaviyoApp(APIApplication):
5159
4764
  response.raise_for_status()
5160
4765
  return response.json()
5161
4766
 
5162
- def get_metric_for_event(self, id, fields_metric=None) -> dict[str, Any]:
4767
+ async def get_metric_for_event(self, id, fields_metric=None) -> dict[str, Any]:
5163
4768
  """
5164
4769
  This API operation retrieves event metric details by ID using a GET request to "/api/events/{id}/metric," allowing specification of metric fields via query parameters and requiring a revision header.
5165
4770
 
@@ -5176,14 +4781,12 @@ class KlaviyoApp(APIApplication):
5176
4781
  if id is None:
5177
4782
  raise ValueError("Missing required parameter 'id'")
5178
4783
  url = f"{self.base_url}/api/events/{id}/metric"
5179
- query_params = {
5180
- k: v for k, v in [("fields[metric]", fields_metric)] if v is not None
5181
- }
4784
+ query_params = {k: v for k, v in [("fields[metric]", fields_metric)] if v is not None}
5182
4785
  response = self._get(url, params=query_params)
5183
4786
  response.raise_for_status()
5184
4787
  return response.json()
5185
4788
 
5186
- def get_metric_id_for_event(self, id) -> dict[str, Any]:
4789
+ async def get_metric_id_for_event(self, id) -> dict[str, Any]:
5187
4790
  """
5188
4791
  This API operation retrieves a specific relationship between an event and a metric by ID using a GET request to the "/api/events/{id}/relationships/metric" path, with the ability to specify a revision via a header parameter.
5189
4792
 
@@ -5204,9 +4807,7 @@ class KlaviyoApp(APIApplication):
5204
4807
  response.raise_for_status()
5205
4808
  return response.json()
5206
4809
 
5207
- def get_profile_for_event(
5208
- self, id, additional_fields_profile=None, fields_profile=None
5209
- ) -> dict[str, Any]:
4810
+ async def get_profile_for_event(self, id, additional_fields_profile=None, fields_profile=None) -> dict[str, Any]:
5210
4811
  """
5211
4812
  This API operation retrieves a profile associated with a specific event by its ID, allowing optional specification of additional fields and profile fields, while also accepting a revision header.
5212
4813
 
@@ -5226,17 +4827,14 @@ class KlaviyoApp(APIApplication):
5226
4827
  url = f"{self.base_url}/api/events/{id}/profile"
5227
4828
  query_params = {
5228
4829
  k: v
5229
- for k, v in [
5230
- ("additional-fields[profile]", additional_fields_profile),
5231
- ("fields[profile]", fields_profile),
5232
- ]
4830
+ for k, v in [("additional-fields[profile]", additional_fields_profile), ("fields[profile]", fields_profile)]
5233
4831
  if v is not None
5234
4832
  }
5235
4833
  response = self._get(url, params=query_params)
5236
4834
  response.raise_for_status()
5237
4835
  return response.json()
5238
4836
 
5239
- def get_profile_id_for_event(self, id) -> dict[str, Any]:
4837
+ async def get_profile_id_for_event(self, id) -> dict[str, Any]:
5240
4838
  """
5241
4839
  Retrieves the profile relationship data for the specified event ID.
5242
4840
 
@@ -5257,7 +4855,7 @@ class KlaviyoApp(APIApplication):
5257
4855
  response.raise_for_status()
5258
4856
  return response.json()
5259
4857
 
5260
- def get_flows(
4858
+ async def get_flows(
5261
4859
  self,
5262
4860
  fields_flow_action=None,
5263
4861
  fields_flow=None,
@@ -5306,7 +4904,7 @@ class KlaviyoApp(APIApplication):
5306
4904
  response.raise_for_status()
5307
4905
  return response.json()
5308
4906
 
5309
- def create_flow(self, additional_fields_flow=None, data=None) -> dict[str, Any]:
4907
+ async def create_flow(self, additional_fields_flow=None, data=None) -> dict[str, Any]:
5310
4908
  """
5311
4909
  Creates a new flow resource, supporting optional query parameters for additional flow fields and header-based revision tracking, returning HTTP 201 on success.
5312
4910
 
@@ -5410,28 +5008,16 @@ class KlaviyoApp(APIApplication):
5410
5008
  Tags:
5411
5009
  Flows
5412
5010
  """
5413
- request_body = {
5414
- "data": data,
5415
- }
5011
+ request_body = {"data": data}
5416
5012
  request_body = {k: v for k, v in request_body.items() if v is not None}
5417
5013
  url = f"{self.base_url}/api/flows"
5418
- query_params = {
5419
- k: v
5420
- for k, v in [("additional-fields[flow]", additional_fields_flow)]
5421
- if v is not None
5422
- }
5014
+ query_params = {k: v for k, v in [("additional-fields[flow]", additional_fields_flow)] if v is not None}
5423
5015
  response = self._post(url, data=request_body, params=query_params)
5424
5016
  response.raise_for_status()
5425
5017
  return response.json()
5426
5018
 
5427
- def get_flow(
5428
- self,
5429
- id,
5430
- additional_fields_flow=None,
5431
- fields_flow_action=None,
5432
- fields_flow=None,
5433
- fields_tag=None,
5434
- include=None,
5019
+ async def get_flow(
5020
+ self, id, additional_fields_flow=None, fields_flow_action=None, fields_flow=None, fields_tag=None, include=None
5435
5021
  ) -> dict[str, Any]:
5436
5022
  """
5437
5023
  Retrieves a flow by ID with optional filtering by additional fields, flow actions, flow details, tags, and includes, using a specified revision from the header.
@@ -5468,7 +5054,7 @@ class KlaviyoApp(APIApplication):
5468
5054
  response.raise_for_status()
5469
5055
  return response.json()
5470
5056
 
5471
- def delete_flow(self, id) -> Any:
5057
+ async def delete_flow(self, id) -> Any:
5472
5058
  """
5473
5059
  Deletes the flow with the specified ID, requiring a revision header, and returns a 204 (No Content) on success, with 400 and 500 codes for client errors and server failures.
5474
5060
 
@@ -5489,7 +5075,7 @@ class KlaviyoApp(APIApplication):
5489
5075
  response.raise_for_status()
5490
5076
  return response.json()
5491
5077
 
5492
- def update_flow_status(self, id, data=None) -> dict[str, Any]:
5078
+ async def update_flow_status(self, id, data=None) -> dict[str, Any]:
5493
5079
  """
5494
5080
  Updates a specific flow by ID using partial modifications, requiring a revision header.
5495
5081
 
@@ -5517,9 +5103,7 @@ class KlaviyoApp(APIApplication):
5517
5103
  """
5518
5104
  if id is None:
5519
5105
  raise ValueError("Missing required parameter 'id'")
5520
- request_body = {
5521
- "data": data,
5522
- }
5106
+ request_body = {"data": data}
5523
5107
  request_body = {k: v for k, v in request_body.items() if v is not None}
5524
5108
  url = f"{self.base_url}/api/flows/{id}"
5525
5109
  query_params = {}
@@ -5527,13 +5111,8 @@ class KlaviyoApp(APIApplication):
5527
5111
  response.raise_for_status()
5528
5112
  return response.json()
5529
5113
 
5530
- def get_flow_action(
5531
- self,
5532
- id,
5533
- fields_flow_action=None,
5534
- fields_flow_message=None,
5535
- fields_flow=None,
5536
- include=None,
5114
+ async def get_flow_action(
5115
+ self, id, fields_flow_action=None, fields_flow_message=None, fields_flow=None, include=None
5537
5116
  ) -> dict[str, Any]:
5538
5117
  """
5539
5118
  Retrieves a specific flow action by ID, optionally including additional fields and related resources, with support for revision tracking via a header.
@@ -5568,13 +5147,8 @@ class KlaviyoApp(APIApplication):
5568
5147
  response.raise_for_status()
5569
5148
  return response.json()
5570
5149
 
5571
- def get_flow_message(
5572
- self,
5573
- id,
5574
- fields_flow_action=None,
5575
- fields_flow_message=None,
5576
- fields_template=None,
5577
- include=None,
5150
+ async def get_flow_message(
5151
+ self, id, fields_flow_action=None, fields_flow_message=None, fields_template=None, include=None
5578
5152
  ) -> dict[str, Any]:
5579
5153
  """
5580
5154
  Retrieves a specific flow message by ID with optional filtering (fields selection) and related resource inclusion (include parameter).
@@ -5609,14 +5183,8 @@ class KlaviyoApp(APIApplication):
5609
5183
  response.raise_for_status()
5610
5184
  return response.json()
5611
5185
 
5612
- def get_actions_for_flow(
5613
- self,
5614
- id,
5615
- fields_flow_action=None,
5616
- filter=None,
5617
- page_cursor=None,
5618
- page_size=None,
5619
- sort=None,
5186
+ async def get_actions_for_flow(
5187
+ self, id, fields_flow_action=None, filter=None, page_cursor=None, page_size=None, sort=None
5620
5188
  ) -> dict[str, Any]:
5621
5189
  """
5622
5190
  Retrieves flow actions for a specific flow with filtering, pagination, and field selection capabilities.
@@ -5653,9 +5221,7 @@ class KlaviyoApp(APIApplication):
5653
5221
  response.raise_for_status()
5654
5222
  return response.json()
5655
5223
 
5656
- def get_action_ids_for_flow(
5657
- self, id, filter=None, page_cursor=None, page_size=None, sort=None
5658
- ) -> dict[str, Any]:
5224
+ async def get_action_ids_for_flow(self, id, filter=None, page_cursor=None, page_size=None, sort=None) -> dict[str, Any]:
5659
5225
  """
5660
5226
  The API operation at "/api/flows/{id}/relationships/flow-actions" using the "GET" method retrieves relationships associated with flow actions for a specific flow ID, allowing filtering, pagination, and sorting of results.
5661
5227
 
@@ -5676,20 +5242,13 @@ class KlaviyoApp(APIApplication):
5676
5242
  raise ValueError("Missing required parameter 'id'")
5677
5243
  url = f"{self.base_url}/api/flows/{id}/relationships/flow-actions"
5678
5244
  query_params = {
5679
- k: v
5680
- for k, v in [
5681
- ("filter", filter),
5682
- ("page[cursor]", page_cursor),
5683
- ("page[size]", page_size),
5684
- ("sort", sort),
5685
- ]
5686
- if v is not None
5245
+ k: v for k, v in [("filter", filter), ("page[cursor]", page_cursor), ("page[size]", page_size), ("sort", sort)] if v is not None
5687
5246
  }
5688
5247
  response = self._get(url, params=query_params)
5689
5248
  response.raise_for_status()
5690
5249
  return response.json()
5691
5250
 
5692
- def get_tags_for_flow(self, id, fields_tag=None) -> dict[str, Any]:
5251
+ async def get_tags_for_flow(self, id, fields_tag=None) -> dict[str, Any]:
5693
5252
  """
5694
5253
  Retrieves the tags associated with a specific flow identified by its ID, allowing optional filtering of tag fields and requiring a revision header.
5695
5254
 
@@ -5711,7 +5270,7 @@ class KlaviyoApp(APIApplication):
5711
5270
  response.raise_for_status()
5712
5271
  return response.json()
5713
5272
 
5714
- def get_tag_ids_for_flow(self, id) -> dict[str, Any]:
5273
+ async def get_tag_ids_for_flow(self, id) -> dict[str, Any]:
5715
5274
  """
5716
5275
  Retrieves the tag relationships associated with a specific flow ID, requiring a revision header parameter, and returns success (200), client error (400), or server error (500) responses.
5717
5276
 
@@ -5732,7 +5291,7 @@ class KlaviyoApp(APIApplication):
5732
5291
  response.raise_for_status()
5733
5292
  return response.json()
5734
5293
 
5735
- def get_flow_for_flow_action(self, id, fields_flow=None) -> dict[str, Any]:
5294
+ async def get_flow_for_flow_action(self, id, fields_flow=None) -> dict[str, Any]:
5736
5295
  """
5737
5296
  Retrieves the flow details associated with a specific flow action by ID, allowing optional filtering of flow fields and specifying a revision via headers.
5738
5297
 
@@ -5749,14 +5308,12 @@ class KlaviyoApp(APIApplication):
5749
5308
  if id is None:
5750
5309
  raise ValueError("Missing required parameter 'id'")
5751
5310
  url = f"{self.base_url}/api/flow-actions/{id}/flow"
5752
- query_params = {
5753
- k: v for k, v in [("fields[flow]", fields_flow)] if v is not None
5754
- }
5311
+ query_params = {k: v for k, v in [("fields[flow]", fields_flow)] if v is not None}
5755
5312
  response = self._get(url, params=query_params)
5756
5313
  response.raise_for_status()
5757
5314
  return response.json()
5758
5315
 
5759
- def get_flow_id_for_flow_action(self, id) -> dict[str, Any]:
5316
+ async def get_flow_id_for_flow_action(self, id) -> dict[str, Any]:
5760
5317
  """
5761
5318
  Retrieves relationships for a specific flow action identified by `{id}`, requiring a `revision` header and returning responses for successful retrieval, bad requests, or server errors.
5762
5319
 
@@ -5777,14 +5334,8 @@ class KlaviyoApp(APIApplication):
5777
5334
  response.raise_for_status()
5778
5335
  return response.json()
5779
5336
 
5780
- def get_messages_for_flow_action(
5781
- self,
5782
- id,
5783
- fields_flow_message=None,
5784
- filter=None,
5785
- page_cursor=None,
5786
- page_size=None,
5787
- sort=None,
5337
+ async def get_messages_for_flow_action(
5338
+ self, id, fields_flow_message=None, filter=None, page_cursor=None, page_size=None, sort=None
5788
5339
  ) -> dict[str, Any]:
5789
5340
  """
5790
5341
  This API operation, accessible via GET method at the "/api/flow-actions/{id}/flow-messages" path, retrieves flow messages associated with a specific flow action identified by "id," allowing customization through query parameters for fields, filtering, pagination, and sorting, with additional revision details provided in the header.
@@ -5821,9 +5372,7 @@ class KlaviyoApp(APIApplication):
5821
5372
  response.raise_for_status()
5822
5373
  return response.json()
5823
5374
 
5824
- def get_message_ids_for_flow_action(
5825
- self, id, filter=None, page_cursor=None, page_size=None, sort=None
5826
- ) -> dict[str, Any]:
5375
+ async def get_message_ids_for_flow_action(self, id, filter=None, page_cursor=None, page_size=None, sort=None) -> dict[str, Any]:
5827
5376
  """
5828
5377
  Retrieves a list of flow messages associated with the specified flow action, supporting pagination, filtering, sorting, and optional revision header.
5829
5378
 
@@ -5844,22 +5393,13 @@ class KlaviyoApp(APIApplication):
5844
5393
  raise ValueError("Missing required parameter 'id'")
5845
5394
  url = f"{self.base_url}/api/flow-actions/{id}/relationships/flow-messages"
5846
5395
  query_params = {
5847
- k: v
5848
- for k, v in [
5849
- ("filter", filter),
5850
- ("page[cursor]", page_cursor),
5851
- ("page[size]", page_size),
5852
- ("sort", sort),
5853
- ]
5854
- if v is not None
5396
+ k: v for k, v in [("filter", filter), ("page[cursor]", page_cursor), ("page[size]", page_size), ("sort", sort)] if v is not None
5855
5397
  }
5856
5398
  response = self._get(url, params=query_params)
5857
5399
  response.raise_for_status()
5858
5400
  return response.json()
5859
5401
 
5860
- def get_action_for_flow_message(
5861
- self, id, fields_flow_action=None
5862
- ) -> dict[str, Any]:
5402
+ async def get_action_for_flow_message(self, id, fields_flow_action=None) -> dict[str, Any]:
5863
5403
  """
5864
5404
  Retrieves a flow action for a specific flow message by ID, allowing optional filtering by fields and revision, returning a successful response or error codes for bad requests or server errors.
5865
5405
 
@@ -5876,16 +5416,12 @@ class KlaviyoApp(APIApplication):
5876
5416
  if id is None:
5877
5417
  raise ValueError("Missing required parameter 'id'")
5878
5418
  url = f"{self.base_url}/api/flow-messages/{id}/flow-action"
5879
- query_params = {
5880
- k: v
5881
- for k, v in [("fields[flow-action]", fields_flow_action)]
5882
- if v is not None
5883
- }
5419
+ query_params = {k: v for k, v in [("fields[flow-action]", fields_flow_action)] if v is not None}
5884
5420
  response = self._get(url, params=query_params)
5885
5421
  response.raise_for_status()
5886
5422
  return response.json()
5887
5423
 
5888
- def get_action_id_for_flow_message(self, id) -> dict[str, Any]:
5424
+ async def get_action_id_for_flow_message(self, id) -> dict[str, Any]:
5889
5425
  """
5890
5426
  Retrieves the relationships between a flow message, identified by `{id}`, and a flow action, allowing for the inspection of how flow messages are associated with actions, with optional revision filtering via the `revision` header.
5891
5427
 
@@ -5906,7 +5442,7 @@ class KlaviyoApp(APIApplication):
5906
5442
  response.raise_for_status()
5907
5443
  return response.json()
5908
5444
 
5909
- def get_template_for_flow_message(self, id, fields_template=None) -> dict[str, Any]:
5445
+ async def get_template_for_flow_message(self, id, fields_template=None) -> dict[str, Any]:
5910
5446
  """
5911
5447
  The `/api/flow-messages/{id}/template` operation retrieves a template for a flow message by its ID using the GET method, allowing optional filtering of template fields via query parameters and specifying revisions through headers.
5912
5448
 
@@ -5923,14 +5459,12 @@ class KlaviyoApp(APIApplication):
5923
5459
  if id is None:
5924
5460
  raise ValueError("Missing required parameter 'id'")
5925
5461
  url = f"{self.base_url}/api/flow-messages/{id}/template"
5926
- query_params = {
5927
- k: v for k, v in [("fields[template]", fields_template)] if v is not None
5928
- }
5462
+ query_params = {k: v for k, v in [("fields[template]", fields_template)] if v is not None}
5929
5463
  response = self._get(url, params=query_params)
5930
5464
  response.raise_for_status()
5931
5465
  return response.json()
5932
5466
 
5933
- def get_template_id_for_flow_message(self, id) -> dict[str, Any]:
5467
+ async def get_template_id_for_flow_message(self, id) -> dict[str, Any]:
5934
5468
  """
5935
5469
  Retrieves the relationship details associated with a template for a specific flow message, identified by `{id}`, with optional filtering by revision specified in the header.
5936
5470
 
@@ -5951,9 +5485,7 @@ class KlaviyoApp(APIApplication):
5951
5485
  response.raise_for_status()
5952
5486
  return response.json()
5953
5487
 
5954
- def get_forms(
5955
- self, fields_form=None, filter=None, page_cursor=None, page_size=None, sort=None
5956
- ) -> dict[str, Any]:
5488
+ async def get_forms(self, fields_form=None, filter=None, page_cursor=None, page_size=None, sort=None) -> dict[str, Any]:
5957
5489
  """
5958
5490
  The "GET /api/forms" operation retrieves a list of forms based on provided query parameters such as fields, filters, pagination, and sorting, with an optional revision header, returning a successful response with a 200 status code.
5959
5491
 
@@ -5986,9 +5518,7 @@ class KlaviyoApp(APIApplication):
5986
5518
  response.raise_for_status()
5987
5519
  return response.json()
5988
5520
 
5989
- def get_form(
5990
- self, id, fields_form_version=None, fields_form=None, include=None
5991
- ) -> dict[str, Any]:
5521
+ async def get_form(self, id, fields_form_version=None, fields_form=None, include=None) -> dict[str, Any]:
5992
5522
  """
5993
5523
  Retrieves a specific form using its ID, supporting optional query parameters for field filtering, includes, and a revision header.
5994
5524
 
@@ -6009,18 +5539,14 @@ class KlaviyoApp(APIApplication):
6009
5539
  url = f"{self.base_url}/api/forms/{id}"
6010
5540
  query_params = {
6011
5541
  k: v
6012
- for k, v in [
6013
- ("fields[form-version]", fields_form_version),
6014
- ("fields[form]", fields_form),
6015
- ("include", include),
6016
- ]
5542
+ for k, v in [("fields[form-version]", fields_form_version), ("fields[form]", fields_form), ("include", include)]
6017
5543
  if v is not None
6018
5544
  }
6019
5545
  response = self._get(url, params=query_params)
6020
5546
  response.raise_for_status()
6021
5547
  return response.json()
6022
5548
 
6023
- def get_form_version(self, id, fields_form_version=None) -> dict[str, Any]:
5549
+ async def get_form_version(self, id, fields_form_version=None) -> dict[str, Any]:
6024
5550
  """
6025
5551
  Retrieves a specific form version by ID using the GET method, allowing optional filtering by form-version fields and revision headers.
6026
5552
 
@@ -6037,23 +5563,13 @@ class KlaviyoApp(APIApplication):
6037
5563
  if id is None:
6038
5564
  raise ValueError("Missing required parameter 'id'")
6039
5565
  url = f"{self.base_url}/api/form-versions/{id}"
6040
- query_params = {
6041
- k: v
6042
- for k, v in [("fields[form-version]", fields_form_version)]
6043
- if v is not None
6044
- }
5566
+ query_params = {k: v for k, v in [("fields[form-version]", fields_form_version)] if v is not None}
6045
5567
  response = self._get(url, params=query_params)
6046
5568
  response.raise_for_status()
6047
5569
  return response.json()
6048
5570
 
6049
- def get_versions_for_form(
6050
- self,
6051
- id,
6052
- fields_form_version=None,
6053
- filter=None,
6054
- page_cursor=None,
6055
- page_size=None,
6056
- sort=None,
5571
+ async def get_versions_for_form(
5572
+ self, id, fields_form_version=None, filter=None, page_cursor=None, page_size=None, sort=None
6057
5573
  ) -> dict[str, Any]:
6058
5574
  """
6059
5575
  Retrieves paginated form versions for a specific form with filtering, sorting, field selection, and pagination options.
@@ -6090,9 +5606,7 @@ class KlaviyoApp(APIApplication):
6090
5606
  response.raise_for_status()
6091
5607
  return response.json()
6092
5608
 
6093
- def get_version_ids_for_form(
6094
- self, id, filter=None, page_cursor=None, page_size=None, sort=None
6095
- ) -> dict[str, Any]:
5609
+ async def get_version_ids_for_form(self, id, filter=None, page_cursor=None, page_size=None, sort=None) -> dict[str, Any]:
6096
5610
  """
6097
5611
  This API operation retrieves the relationships between a form and its versions via a GET request to "/api/forms/{id}/relationships/form-versions," allowing filtering, pagination, and sorting of results.
6098
5612
 
@@ -6113,20 +5627,13 @@ class KlaviyoApp(APIApplication):
6113
5627
  raise ValueError("Missing required parameter 'id'")
6114
5628
  url = f"{self.base_url}/api/forms/{id}/relationships/form-versions"
6115
5629
  query_params = {
6116
- k: v
6117
- for k, v in [
6118
- ("filter", filter),
6119
- ("page[cursor]", page_cursor),
6120
- ("page[size]", page_size),
6121
- ("sort", sort),
6122
- ]
6123
- if v is not None
5630
+ k: v for k, v in [("filter", filter), ("page[cursor]", page_cursor), ("page[size]", page_size), ("sort", sort)] if v is not None
6124
5631
  }
6125
5632
  response = self._get(url, params=query_params)
6126
5633
  response.raise_for_status()
6127
5634
  return response.json()
6128
5635
 
6129
- def get_form_for_form_version(self, id, fields_form=None) -> dict[str, Any]:
5636
+ async def get_form_for_form_version(self, id, fields_form=None) -> dict[str, Any]:
6130
5637
  """
6131
5638
  Retrieves the specified form version's form details, with optional field filtering via `fields[form]` query parameter and revision tracking via `revision` header.
6132
5639
 
@@ -6143,14 +5650,12 @@ class KlaviyoApp(APIApplication):
6143
5650
  if id is None:
6144
5651
  raise ValueError("Missing required parameter 'id'")
6145
5652
  url = f"{self.base_url}/api/form-versions/{id}/form"
6146
- query_params = {
6147
- k: v for k, v in [("fields[form]", fields_form)] if v is not None
6148
- }
5653
+ query_params = {k: v for k, v in [("fields[form]", fields_form)] if v is not None}
6149
5654
  response = self._get(url, params=query_params)
6150
5655
  response.raise_for_status()
6151
5656
  return response.json()
6152
5657
 
6153
- def get_form_id_for_form_version(self, id) -> dict[str, Any]:
5658
+ async def get_form_id_for_form_version(self, id) -> dict[str, Any]:
6154
5659
  """
6155
5660
  Retrieves the relationship details of a specified form version by its ID using the provided revision header.
6156
5661
 
@@ -6171,14 +5676,7 @@ class KlaviyoApp(APIApplication):
6171
5676
  response.raise_for_status()
6172
5677
  return response.json()
6173
5678
 
6174
- def get_images(
6175
- self,
6176
- fields_image=None,
6177
- filter=None,
6178
- page_cursor=None,
6179
- page_size=None,
6180
- sort=None,
6181
- ) -> dict[str, Any]:
5679
+ async def get_images(self, fields_image=None, filter=None, page_cursor=None, page_size=None, sort=None) -> dict[str, Any]:
6182
5680
  """
6183
5681
  The **GET /api/images** operation retrieves image resources based on optional query parameters for filtering, pagination, sorting, and specific fields, with the option to include a revision header.
6184
5682
 
@@ -6211,7 +5709,7 @@ class KlaviyoApp(APIApplication):
6211
5709
  response.raise_for_status()
6212
5710
  return response.json()
6213
5711
 
6214
- def upload_image_from_url(self, data=None) -> dict[str, Any]:
5712
+ async def upload_image_from_url(self, data=None) -> dict[str, Any]:
6215
5713
  """
6216
5714
  Creates a new image resource with the specified revision, returning a successful creation response if valid, or error responses for invalid requests or server issues.
6217
5715
 
@@ -6237,9 +5735,7 @@ class KlaviyoApp(APIApplication):
6237
5735
  Tags:
6238
5736
  Images
6239
5737
  """
6240
- request_body = {
6241
- "data": data,
6242
- }
5738
+ request_body = {"data": data}
6243
5739
  request_body = {k: v for k, v in request_body.items() if v is not None}
6244
5740
  url = f"{self.base_url}/api/images"
6245
5741
  query_params = {}
@@ -6247,7 +5743,7 @@ class KlaviyoApp(APIApplication):
6247
5743
  response.raise_for_status()
6248
5744
  return response.json()
6249
5745
 
6250
- def get_image(self, id, fields_image=None) -> dict[str, Any]:
5746
+ async def get_image(self, id, fields_image=None) -> dict[str, Any]:
6251
5747
  """
6252
5748
  Retrieves a specific image by ID, allowing optional query parameter "fields[image]" and a required revision header, returning data if successful or error responses for bad requests or internal server errors.
6253
5749
 
@@ -6264,14 +5760,12 @@ class KlaviyoApp(APIApplication):
6264
5760
  if id is None:
6265
5761
  raise ValueError("Missing required parameter 'id'")
6266
5762
  url = f"{self.base_url}/api/images/{id}"
6267
- query_params = {
6268
- k: v for k, v in [("fields[image]", fields_image)] if v is not None
6269
- }
5763
+ query_params = {k: v for k, v in [("fields[image]", fields_image)] if v is not None}
6270
5764
  response = self._get(url, params=query_params)
6271
5765
  response.raise_for_status()
6272
5766
  return response.json()
6273
5767
 
6274
- def update_image(self, id, data=None) -> dict[str, Any]:
5768
+ async def update_image(self, id, data=None) -> dict[str, Any]:
6275
5769
  """
6276
5770
  The PATCH method at "/api/images/{id}" allows for partial updates of an image resource by specifying changes in the request body, with the revision tracked via a header parameter.
6277
5771
 
@@ -6300,9 +5794,7 @@ class KlaviyoApp(APIApplication):
6300
5794
  """
6301
5795
  if id is None:
6302
5796
  raise ValueError("Missing required parameter 'id'")
6303
- request_body = {
6304
- "data": data,
6305
- }
5797
+ request_body = {"data": data}
6306
5798
  request_body = {k: v for k, v in request_body.items() if v is not None}
6307
5799
  url = f"{self.base_url}/api/images/{id}"
6308
5800
  query_params = {}
@@ -6310,15 +5802,8 @@ class KlaviyoApp(APIApplication):
6310
5802
  response.raise_for_status()
6311
5803
  return response.json()
6312
5804
 
6313
- def get_lists(
6314
- self,
6315
- fields_flow=None,
6316
- fields_list=None,
6317
- fields_tag=None,
6318
- filter=None,
6319
- include=None,
6320
- page_cursor=None,
6321
- sort=None,
5805
+ async def get_lists(
5806
+ self, fields_flow=None, fields_list=None, fields_tag=None, filter=None, include=None, page_cursor=None, sort=None
6322
5807
  ) -> dict[str, Any]:
6323
5808
  """
6324
5809
  The API operation at "/api/lists" using the "GET" method retrieves a list of items based on specified query parameters for fields, filters, sorting, and pagination, with optional headers for revision control.
@@ -6356,7 +5841,7 @@ class KlaviyoApp(APIApplication):
6356
5841
  response.raise_for_status()
6357
5842
  return response.json()
6358
5843
 
6359
- def create_list(self, data=None) -> dict[str, Any]:
5844
+ async def create_list(self, data=None) -> dict[str, Any]:
6360
5845
  """
6361
5846
  The POST operation at "/api/lists" creates a new list resource, returning a 201 status upon success, and accepts a `revision` parameter in the request header.
6362
5847
 
@@ -6380,9 +5865,7 @@ class KlaviyoApp(APIApplication):
6380
5865
  Tags:
6381
5866
  Lists
6382
5867
  """
6383
- request_body = {
6384
- "data": data,
6385
- }
5868
+ request_body = {"data": data}
6386
5869
  request_body = {k: v for k, v in request_body.items() if v is not None}
6387
5870
  url = f"{self.base_url}/api/lists"
6388
5871
  query_params = {}
@@ -6390,14 +5873,8 @@ class KlaviyoApp(APIApplication):
6390
5873
  response.raise_for_status()
6391
5874
  return response.json()
6392
5875
 
6393
- def get_list(
6394
- self,
6395
- id,
6396
- additional_fields_list=None,
6397
- fields_flow=None,
6398
- fields_list=None,
6399
- fields_tag=None,
6400
- include=None,
5876
+ async def get_list(
5877
+ self, id, additional_fields_list=None, fields_flow=None, fields_list=None, fields_tag=None, include=None
6401
5878
  ) -> dict[str, Any]:
6402
5879
  """
6403
5880
  Retrieves a specific list by ID with customizable response fields, optional related resources to include, and support for specifying data revisions via headers.
@@ -6434,7 +5911,7 @@ class KlaviyoApp(APIApplication):
6434
5911
  response.raise_for_status()
6435
5912
  return response.json()
6436
5913
 
6437
- def delete_list(self, id) -> Any:
5914
+ async def delete_list(self, id) -> Any:
6438
5915
  """
6439
5916
  Deletes the specified list by ID when the correct revision header is provided, returning HTTP 204 for successful deletion, or 400/500 for invalid requests or server errors.
6440
5917
 
@@ -6455,7 +5932,7 @@ class KlaviyoApp(APIApplication):
6455
5932
  response.raise_for_status()
6456
5933
  return response.json()
6457
5934
 
6458
- def update_list(self, id, data=None) -> dict[str, Any]:
5935
+ async def update_list(self, id, data=None) -> dict[str, Any]:
6459
5936
  """
6460
5937
  Updates a list resource partially by applying modifications to the specified fields at the path "/api/lists/{id}", requiring a revision header for concurrent version control.
6461
5938
 
@@ -6483,9 +5960,7 @@ class KlaviyoApp(APIApplication):
6483
5960
  """
6484
5961
  if id is None:
6485
5962
  raise ValueError("Missing required parameter 'id'")
6486
- request_body = {
6487
- "data": data,
6488
- }
5963
+ request_body = {"data": data}
6489
5964
  request_body = {k: v for k, v in request_body.items() if v is not None}
6490
5965
  url = f"{self.base_url}/api/lists/{id}"
6491
5966
  query_params = {}
@@ -6493,7 +5968,7 @@ class KlaviyoApp(APIApplication):
6493
5968
  response.raise_for_status()
6494
5969
  return response.json()
6495
5970
 
6496
- def get_tags_for_list(self, id, fields_tag=None) -> dict[str, Any]:
5971
+ async def get_tags_for_list(self, id, fields_tag=None) -> dict[str, Any]:
6497
5972
  """
6498
5973
  This API operation retrieves the tags associated with a list specified by its ID, allowing optional filtering of specific fields and revision information via query and header parameters, respectively.
6499
5974
 
@@ -6515,7 +5990,7 @@ class KlaviyoApp(APIApplication):
6515
5990
  response.raise_for_status()
6516
5991
  return response.json()
6517
5992
 
6518
- def get_tag_ids_for_list(self, id) -> dict[str, Any]:
5993
+ async def get_tag_ids_for_list(self, id) -> dict[str, Any]:
6519
5994
  """
6520
5995
  Retrieves the relationships between a specified list and its associated tags.
6521
5996
 
@@ -6536,15 +6011,8 @@ class KlaviyoApp(APIApplication):
6536
6011
  response.raise_for_status()
6537
6012
  return response.json()
6538
6013
 
6539
- def get_profiles_for_list(
6540
- self,
6541
- id,
6542
- additional_fields_profile=None,
6543
- fields_profile=None,
6544
- filter=None,
6545
- page_cursor=None,
6546
- page_size=None,
6547
- sort=None,
6014
+ async def get_profiles_for_list(
6015
+ self, id, additional_fields_profile=None, fields_profile=None, filter=None, page_cursor=None, page_size=None, sort=None
6548
6016
  ) -> dict[str, Any]:
6549
6017
  """
6550
6018
  Retrieves a list of profiles associated with the specified list ID, allowing optional filtering, sorting, and pagination, with customizable fields and revision tracking.
@@ -6583,9 +6051,7 @@ class KlaviyoApp(APIApplication):
6583
6051
  response.raise_for_status()
6584
6052
  return response.json()
6585
6053
 
6586
- def get_profile_ids_for_list(
6587
- self, id, filter=None, page_cursor=None, page_size=None, sort=None
6588
- ) -> dict[str, Any]:
6054
+ async def get_profile_ids_for_list(self, id, filter=None, page_cursor=None, page_size=None, sort=None) -> dict[str, Any]:
6589
6055
  """
6590
6056
  This API operation retrieves the profiles related to a list identified by `{id}`, allowing for filtering, pagination, sorting, and revision specification via query parameters and headers.
6591
6057
 
@@ -6606,20 +6072,13 @@ class KlaviyoApp(APIApplication):
6606
6072
  raise ValueError("Missing required parameter 'id'")
6607
6073
  url = f"{self.base_url}/api/lists/{id}/relationships/profiles"
6608
6074
  query_params = {
6609
- k: v
6610
- for k, v in [
6611
- ("filter", filter),
6612
- ("page[cursor]", page_cursor),
6613
- ("page[size]", page_size),
6614
- ("sort", sort),
6615
- ]
6616
- if v is not None
6075
+ k: v for k, v in [("filter", filter), ("page[cursor]", page_cursor), ("page[size]", page_size), ("sort", sort)] if v is not None
6617
6076
  }
6618
6077
  response = self._get(url, params=query_params)
6619
6078
  response.raise_for_status()
6620
6079
  return response.json()
6621
6080
 
6622
- def add_profiles_to_list(self, id, data=None) -> Any:
6081
+ async def add_profiles_to_list(self, id, data=None) -> Any:
6623
6082
  """
6624
6083
  Creates a relationship between a specified list and one or more profiles using a POST request with an optional revision header, returning a 204 on success, 400 for client errors, and 500 for server errors.
6625
6084
 
@@ -6650,9 +6109,7 @@ class KlaviyoApp(APIApplication):
6650
6109
  """
6651
6110
  if id is None:
6652
6111
  raise ValueError("Missing required parameter 'id'")
6653
- request_body = {
6654
- "data": data,
6655
- }
6112
+ request_body = {"data": data}
6656
6113
  request_body = {k: v for k, v in request_body.items() if v is not None}
6657
6114
  url = f"{self.base_url}/api/lists/{id}/relationships/profiles"
6658
6115
  query_params = {}
@@ -6660,7 +6117,7 @@ class KlaviyoApp(APIApplication):
6660
6117
  response.raise_for_status()
6661
6118
  return response.json()
6662
6119
 
6663
- def remove_profiles_from_list(self, id, data=None) -> Any:
6120
+ async def remove_profiles_from_list(self, id, data=None) -> Any:
6664
6121
  """
6665
6122
  Deletes the relationship between the specified list and associated profiles using a revision header, returning status codes for success, bad request, and server errors.
6666
6123
 
@@ -6691,9 +6148,7 @@ class KlaviyoApp(APIApplication):
6691
6148
  """
6692
6149
  if id is None:
6693
6150
  raise ValueError("Missing required parameter 'id'")
6694
- request_body = {
6695
- "data": data,
6696
- }
6151
+ request_body = {"data": data}
6697
6152
  request_body = {k: v for k, v in request_body.items() if v is not None}
6698
6153
  url = f"{self.base_url}/api/lists/{id}/relationships/profiles"
6699
6154
  query_params = {}
@@ -6701,7 +6156,7 @@ class KlaviyoApp(APIApplication):
6701
6156
  response.raise_for_status()
6702
6157
  return response.json()
6703
6158
 
6704
- def get_flows_triggered_by_list(self, id, fields_flow=None) -> dict[str, Any]:
6159
+ async def get_flows_triggered_by_list(self, id, fields_flow=None) -> dict[str, Any]:
6705
6160
  """
6706
6161
  Retrieves flow triggers for a specific list by ID, supporting optional filtering by flow fields and specifying a revision in the request header.
6707
6162
 
@@ -6718,14 +6173,12 @@ class KlaviyoApp(APIApplication):
6718
6173
  if id is None:
6719
6174
  raise ValueError("Missing required parameter 'id'")
6720
6175
  url = f"{self.base_url}/api/lists/{id}/flow-triggers"
6721
- query_params = {
6722
- k: v for k, v in [("fields[flow]", fields_flow)] if v is not None
6723
- }
6176
+ query_params = {k: v for k, v in [("fields[flow]", fields_flow)] if v is not None}
6724
6177
  response = self._get(url, params=query_params)
6725
6178
  response.raise_for_status()
6726
6179
  return response.json()
6727
6180
 
6728
- def get_ids_for_flows_triggered_by_list(self, id) -> dict[str, Any]:
6181
+ async def get_ids_for_flows_triggered_by_list(self, id) -> dict[str, Any]:
6729
6182
  """
6730
6183
  Retrieves the flow triggers associated with a specific list using the provided ID, including revision header parameter, and returns status codes for success (200), client errors (400), or server issues (500).
6731
6184
 
@@ -6746,14 +6199,7 @@ class KlaviyoApp(APIApplication):
6746
6199
  response.raise_for_status()
6747
6200
  return response.json()
6748
6201
 
6749
- def get_metrics(
6750
- self,
6751
- fields_flow=None,
6752
- fields_metric=None,
6753
- filter=None,
6754
- include=None,
6755
- page_cursor=None,
6756
- ) -> dict[str, Any]:
6202
+ async def get_metrics(self, fields_flow=None, fields_metric=None, filter=None, include=None, page_cursor=None) -> dict[str, Any]:
6757
6203
  """
6758
6204
  Retrieves paginated metrics data with optional field filtering, resource inclusion, and cursor-based pagination, requiring a revision header.
6759
6205
 
@@ -6786,9 +6232,7 @@ class KlaviyoApp(APIApplication):
6786
6232
  response.raise_for_status()
6787
6233
  return response.json()
6788
6234
 
6789
- def get_metric(
6790
- self, id, fields_flow=None, fields_metric=None, include=None
6791
- ) -> dict[str, Any]:
6235
+ async def get_metric(self, id, fields_flow=None, fields_metric=None, include=None) -> dict[str, Any]:
6792
6236
  """
6793
6237
  Retrieves specific metric data by ID, allowing optional filtering by flow and metric fields, inclusion of additional data, and specification of a revision via a header.
6794
6238
 
@@ -6808,25 +6252,14 @@ class KlaviyoApp(APIApplication):
6808
6252
  raise ValueError("Missing required parameter 'id'")
6809
6253
  url = f"{self.base_url}/api/metrics/{id}"
6810
6254
  query_params = {
6811
- k: v
6812
- for k, v in [
6813
- ("fields[flow]", fields_flow),
6814
- ("fields[metric]", fields_metric),
6815
- ("include", include),
6816
- ]
6817
- if v is not None
6255
+ k: v for k, v in [("fields[flow]", fields_flow), ("fields[metric]", fields_metric), ("include", include)] if v is not None
6818
6256
  }
6819
6257
  response = self._get(url, params=query_params)
6820
6258
  response.raise_for_status()
6821
6259
  return response.json()
6822
6260
 
6823
- def get_metric_property(
6824
- self,
6825
- id,
6826
- additional_fields_metric_property=None,
6827
- fields_metric_property=None,
6828
- fields_metric=None,
6829
- include=None,
6261
+ async def get_metric_property(
6262
+ self, id, additional_fields_metric_property=None, fields_metric_property=None, fields_metric=None, include=None
6830
6263
  ) -> dict[str, Any]:
6831
6264
  """
6832
6265
  Retrieves a metric property by ID, allowing optional filtering of fields and inclusion of additional data through query parameters, with support for revision specification via a header.
@@ -6850,10 +6283,7 @@ class KlaviyoApp(APIApplication):
6850
6283
  query_params = {
6851
6284
  k: v
6852
6285
  for k, v in [
6853
- (
6854
- "additional-fields[metric-property]",
6855
- additional_fields_metric_property,
6856
- ),
6286
+ ("additional-fields[metric-property]", additional_fields_metric_property),
6857
6287
  ("fields[metric-property]", fields_metric_property),
6858
6288
  ("fields[metric]", fields_metric),
6859
6289
  ("include", include),
@@ -6864,7 +6294,7 @@ class KlaviyoApp(APIApplication):
6864
6294
  response.raise_for_status()
6865
6295
  return response.json()
6866
6296
 
6867
- def query_metric_aggregates(self, data=None) -> dict[str, Any]:
6297
+ async def query_metric_aggregates(self, data=None) -> dict[str, Any]:
6868
6298
  """
6869
6299
  Posts a request to the "/api/metric-aggregates" endpoint, requiring a "revision" header, to aggregate metrics, returning a successful response if valid or error responses for bad requests or server errors.
6870
6300
 
@@ -6909,9 +6339,7 @@ class KlaviyoApp(APIApplication):
6909
6339
  Tags:
6910
6340
  Metrics
6911
6341
  """
6912
- request_body = {
6913
- "data": data,
6914
- }
6342
+ request_body = {"data": data}
6915
6343
  request_body = {k: v for k, v in request_body.items() if v is not None}
6916
6344
  url = f"{self.base_url}/api/metric-aggregates"
6917
6345
  query_params = {}
@@ -6919,7 +6347,7 @@ class KlaviyoApp(APIApplication):
6919
6347
  response.raise_for_status()
6920
6348
  return response.json()
6921
6349
 
6922
- def get_flows_triggered_by_metric(self, id, fields_flow=None) -> dict[str, Any]:
6350
+ async def get_flows_triggered_by_metric(self, id, fields_flow=None) -> dict[str, Any]:
6923
6351
  """
6924
6352
  Retrieves flow trigger details for a specified metric ID, supporting filtering via query parameters and optional header-based versioning.
6925
6353
 
@@ -6936,14 +6364,12 @@ class KlaviyoApp(APIApplication):
6936
6364
  if id is None:
6937
6365
  raise ValueError("Missing required parameter 'id'")
6938
6366
  url = f"{self.base_url}/api/metrics/{id}/flow-triggers"
6939
- query_params = {
6940
- k: v for k, v in [("fields[flow]", fields_flow)] if v is not None
6941
- }
6367
+ query_params = {k: v for k, v in [("fields[flow]", fields_flow)] if v is not None}
6942
6368
  response = self._get(url, params=query_params)
6943
6369
  response.raise_for_status()
6944
6370
  return response.json()
6945
6371
 
6946
- def get_ids_for_flows_triggered_by_metric(self, id) -> dict[str, Any]:
6372
+ async def get_ids_for_flows_triggered_by_metric(self, id) -> dict[str, Any]:
6947
6373
  """
6948
6374
  This API operation retrieves the flow triggers associated with a specific metric identified by `{id}`, allowing for the inspection of triggers configured for that metric.
6949
6375
 
@@ -6964,9 +6390,7 @@ class KlaviyoApp(APIApplication):
6964
6390
  response.raise_for_status()
6965
6391
  return response.json()
6966
6392
 
6967
- def get_properties_for_metric(
6968
- self, id, additional_fields_metric_property=None, fields_metric_property=None
6969
- ) -> dict[str, Any]:
6393
+ async def get_properties_for_metric(self, id, additional_fields_metric_property=None, fields_metric_property=None) -> dict[str, Any]:
6970
6394
  """
6971
6395
  Retrieves properties of a specific metric by ID, supporting query-based field filtering and custom headers for revision management.
6972
6396
 
@@ -6987,10 +6411,7 @@ class KlaviyoApp(APIApplication):
6987
6411
  query_params = {
6988
6412
  k: v
6989
6413
  for k, v in [
6990
- (
6991
- "additional-fields[metric-property]",
6992
- additional_fields_metric_property,
6993
- ),
6414
+ ("additional-fields[metric-property]", additional_fields_metric_property),
6994
6415
  ("fields[metric-property]", fields_metric_property),
6995
6416
  ]
6996
6417
  if v is not None
@@ -6999,7 +6420,7 @@ class KlaviyoApp(APIApplication):
6999
6420
  response.raise_for_status()
7000
6421
  return response.json()
7001
6422
 
7002
- def get_property_ids_for_metric(self, id) -> dict[str, Any]:
6423
+ async def get_property_ids_for_metric(self, id) -> dict[str, Any]:
7003
6424
  """
7004
6425
  Retrieves the relationships of metric properties associated with a specific metric by ID, with the option to specify a revision via the request header.
7005
6426
 
@@ -7020,7 +6441,7 @@ class KlaviyoApp(APIApplication):
7020
6441
  response.raise_for_status()
7021
6442
  return response.json()
7022
6443
 
7023
- def get_metric_for_metric_property(self, id, fields_metric=None) -> dict[str, Any]:
6444
+ async def get_metric_for_metric_property(self, id, fields_metric=None) -> dict[str, Any]:
7024
6445
  """
7025
6446
  Retrieves a specific metric property by ID, allowing filtering via query parameters and supporting revision headers for conditional requests.
7026
6447
 
@@ -7037,14 +6458,12 @@ class KlaviyoApp(APIApplication):
7037
6458
  if id is None:
7038
6459
  raise ValueError("Missing required parameter 'id'")
7039
6460
  url = f"{self.base_url}/api/metric-properties/{id}/metric"
7040
- query_params = {
7041
- k: v for k, v in [("fields[metric]", fields_metric)] if v is not None
7042
- }
6461
+ query_params = {k: v for k, v in [("fields[metric]", fields_metric)] if v is not None}
7043
6462
  response = self._get(url, params=query_params)
7044
6463
  response.raise_for_status()
7045
6464
  return response.json()
7046
6465
 
7047
- def get_metric_id_for_metric_property(self, id) -> dict[str, Any]:
6466
+ async def get_metric_id_for_metric_property(self, id) -> dict[str, Any]:
7048
6467
  """
7049
6468
  Retrieves the relationships of a metric property identified by {id} through the "GET" method, supporting a "revision" header parameter with response codes indicating success (200), client errors (400), and server errors (500).
7050
6469
 
@@ -7065,14 +6484,8 @@ class KlaviyoApp(APIApplication):
7065
6484
  response.raise_for_status()
7066
6485
  return response.json()
7067
6486
 
7068
- def get_profiles(
7069
- self,
7070
- additional_fields_profile=None,
7071
- fields_profile=None,
7072
- filter=None,
7073
- page_cursor=None,
7074
- page_size=None,
7075
- sort=None,
6487
+ async def get_profiles(
6488
+ self, additional_fields_profile=None, fields_profile=None, filter=None, page_cursor=None, page_size=None, sort=None
7076
6489
  ) -> dict[str, Any]:
7077
6490
  """
7078
6491
  Retrieves profiles with support for field filtering, pagination, sorting, and custom filtering via query parameters.
@@ -7108,9 +6521,7 @@ class KlaviyoApp(APIApplication):
7108
6521
  response.raise_for_status()
7109
6522
  return response.json()
7110
6523
 
7111
- def create_profile(
7112
- self, additional_fields_profile=None, data=None
7113
- ) -> dict[str, Any]:
6524
+ async def create_profile(self, additional_fields_profile=None, data=None) -> dict[str, Any]:
7114
6525
  """
7115
6526
  Creates a new profile with additional fields passed via query parameters and custom header for revision control, returning success (201), client error (400), or server error (500) status codes.
7116
6527
 
@@ -7156,28 +6567,16 @@ class KlaviyoApp(APIApplication):
7156
6567
  Tags:
7157
6568
  Profiles, Profiles1
7158
6569
  """
7159
- request_body = {
7160
- "data": data,
7161
- }
6570
+ request_body = {"data": data}
7162
6571
  request_body = {k: v for k, v in request_body.items() if v is not None}
7163
6572
  url = f"{self.base_url}/api/profiles"
7164
- query_params = {
7165
- k: v
7166
- for k, v in [("additional-fields[profile]", additional_fields_profile)]
7167
- if v is not None
7168
- }
6573
+ query_params = {k: v for k, v in [("additional-fields[profile]", additional_fields_profile)] if v is not None}
7169
6574
  response = self._post(url, data=request_body, params=query_params)
7170
6575
  response.raise_for_status()
7171
6576
  return response.json()
7172
6577
 
7173
- def get_profile(
7174
- self,
7175
- id,
7176
- additional_fields_profile=None,
7177
- fields_list=None,
7178
- fields_profile=None,
7179
- fields_segment=None,
7180
- include=None,
6578
+ async def get_profile(
6579
+ self, id, additional_fields_profile=None, fields_list=None, fields_profile=None, fields_segment=None, include=None
7181
6580
  ) -> dict[str, Any]:
7182
6581
  """
7183
6582
  Retrieves a specific profile by ID with customizable field selection through query parameters for enhanced data filtering.
@@ -7214,9 +6613,7 @@ class KlaviyoApp(APIApplication):
7214
6613
  response.raise_for_status()
7215
6614
  return response.json()
7216
6615
 
7217
- def update_profile(
7218
- self, id, additional_fields_profile=None, data=None
7219
- ) -> dict[str, Any]:
6616
+ async def update_profile(self, id, additional_fields_profile=None, data=None) -> dict[str, Any]:
7220
6617
  """
7221
6618
  Updates specific fields of a profile identified by {id} using a partial payload, with optional query parameters for additional fields and a revision header for concurrency control.
7222
6619
 
@@ -7274,26 +6671,16 @@ class KlaviyoApp(APIApplication):
7274
6671
  """
7275
6672
  if id is None:
7276
6673
  raise ValueError("Missing required parameter 'id'")
7277
- request_body = {
7278
- "data": data,
7279
- }
6674
+ request_body = {"data": data}
7280
6675
  request_body = {k: v for k, v in request_body.items() if v is not None}
7281
6676
  url = f"{self.base_url}/api/profiles/{id}"
7282
- query_params = {
7283
- k: v
7284
- for k, v in [("additional-fields[profile]", additional_fields_profile)]
7285
- if v is not None
7286
- }
6677
+ query_params = {k: v for k, v in [("additional-fields[profile]", additional_fields_profile)] if v is not None}
7287
6678
  response = self._patch(url, data=request_body, params=query_params)
7288
6679
  response.raise_for_status()
7289
6680
  return response.json()
7290
6681
 
7291
- def get_bulk_suppress_profiles_jobs(
7292
- self,
7293
- fields_profile_suppression_bulk_create_job=None,
7294
- filter=None,
7295
- page_cursor=None,
7296
- sort=None,
6682
+ async def get_bulk_suppress_profiles_jobs(
6683
+ self, fields_profile_suppression_bulk_create_job=None, filter=None, page_cursor=None, sort=None
7297
6684
  ) -> dict[str, Any]:
7298
6685
  """
7299
6686
  The GET operation at the "/api/profile-suppression-bulk-create-jobs" path retrieves a list of bulk profile suppression jobs, allowing for filtering, sorting, and pagination of the results through query parameters.
@@ -7314,10 +6701,7 @@ class KlaviyoApp(APIApplication):
7314
6701
  query_params = {
7315
6702
  k: v
7316
6703
  for k, v in [
7317
- (
7318
- "fields[profile-suppression-bulk-create-job]",
7319
- fields_profile_suppression_bulk_create_job,
7320
- ),
6704
+ ("fields[profile-suppression-bulk-create-job]", fields_profile_suppression_bulk_create_job),
7321
6705
  ("filter", filter),
7322
6706
  ("page[cursor]", page_cursor),
7323
6707
  ("sort", sort),
@@ -7328,7 +6712,7 @@ class KlaviyoApp(APIApplication):
7328
6712
  response.raise_for_status()
7329
6713
  return response.json()
7330
6714
 
7331
- def bulk_suppress_profiles(self, data=None) -> dict[str, Any]:
6715
+ async def bulk_suppress_profiles(self, data=None) -> dict[str, Any]:
7332
6716
  """
7333
6717
  Creates a bulk suppression job for profiles to prevent email communication via the Klaviyo API.
7334
6718
 
@@ -7381,9 +6765,7 @@ class KlaviyoApp(APIApplication):
7381
6765
  Tags:
7382
6766
  Profiles, Consent
7383
6767
  """
7384
- request_body = {
7385
- "data": data,
7386
- }
6768
+ request_body = {"data": data}
7387
6769
  request_body = {k: v for k, v in request_body.items() if v is not None}
7388
6770
  url = f"{self.base_url}/api/profile-suppression-bulk-create-jobs"
7389
6771
  query_params = {}
@@ -7391,9 +6773,7 @@ class KlaviyoApp(APIApplication):
7391
6773
  response.raise_for_status()
7392
6774
  return response.json()
7393
6775
 
7394
- def get_bulk_suppress_profiles_job(
7395
- self, job_id, fields_profile_suppression_bulk_create_job=None
7396
- ) -> dict[str, Any]:
6776
+ async def get_bulk_suppress_profiles_job(self, job_id, fields_profile_suppression_bulk_create_job=None) -> dict[str, Any]:
7397
6777
  """
7398
6778
  Retrieve the status and details of a bulk profile suppression job by its ID, including optional field filtering and revision header support.
7399
6779
 
@@ -7411,25 +6791,14 @@ class KlaviyoApp(APIApplication):
7411
6791
  raise ValueError("Missing required parameter 'job_id'")
7412
6792
  url = f"{self.base_url}/api/profile-suppression-bulk-create-jobs/{job_id}"
7413
6793
  query_params = {
7414
- k: v
7415
- for k, v in [
7416
- (
7417
- "fields[profile-suppression-bulk-create-job]",
7418
- fields_profile_suppression_bulk_create_job,
7419
- )
7420
- ]
7421
- if v is not None
6794
+ k: v for k, v in [("fields[profile-suppression-bulk-create-job]", fields_profile_suppression_bulk_create_job)] if v is not None
7422
6795
  }
7423
6796
  response = self._get(url, params=query_params)
7424
6797
  response.raise_for_status()
7425
6798
  return response.json()
7426
6799
 
7427
- def get_bulk_unsuppress_profiles_jobs(
7428
- self,
7429
- fields_profile_suppression_bulk_delete_job=None,
7430
- filter=None,
7431
- page_cursor=None,
7432
- sort=None,
6800
+ async def get_bulk_unsuppress_profiles_jobs(
6801
+ self, fields_profile_suppression_bulk_delete_job=None, filter=None, page_cursor=None, sort=None
7433
6802
  ) -> dict[str, Any]:
7434
6803
  """
7435
6804
  Retrieves a paginated list of bulk profile suppression deletion jobs with optional filtering, sorting, and field selection.
@@ -7450,10 +6819,7 @@ class KlaviyoApp(APIApplication):
7450
6819
  query_params = {
7451
6820
  k: v
7452
6821
  for k, v in [
7453
- (
7454
- "fields[profile-suppression-bulk-delete-job]",
7455
- fields_profile_suppression_bulk_delete_job,
7456
- ),
6822
+ ("fields[profile-suppression-bulk-delete-job]", fields_profile_suppression_bulk_delete_job),
7457
6823
  ("filter", filter),
7458
6824
  ("page[cursor]", page_cursor),
7459
6825
  ("sort", sort),
@@ -7464,7 +6830,7 @@ class KlaviyoApp(APIApplication):
7464
6830
  response.raise_for_status()
7465
6831
  return response.json()
7466
6832
 
7467
- def bulk_unsuppress_profiles(self, data=None) -> dict[str, Any]:
6833
+ async def bulk_unsuppress_profiles(self, data=None) -> dict[str, Any]:
7468
6834
  """
7469
6835
  Creates a bulk job to suppress and/or delete profiles asynchronously, returning a 202 Accepted status upon successful initiation.
7470
6836
 
@@ -7517,9 +6883,7 @@ class KlaviyoApp(APIApplication):
7517
6883
  Tags:
7518
6884
  Profiles, Consent
7519
6885
  """
7520
- request_body = {
7521
- "data": data,
7522
- }
6886
+ request_body = {"data": data}
7523
6887
  request_body = {k: v for k, v in request_body.items() if v is not None}
7524
6888
  url = f"{self.base_url}/api/profile-suppression-bulk-delete-jobs"
7525
6889
  query_params = {}
@@ -7527,9 +6891,7 @@ class KlaviyoApp(APIApplication):
7527
6891
  response.raise_for_status()
7528
6892
  return response.json()
7529
6893
 
7530
- def get_bulk_unsuppress_profiles_job(
7531
- self, job_id, fields_profile_suppression_bulk_delete_job=None
7532
- ) -> dict[str, Any]:
6894
+ async def get_bulk_unsuppress_profiles_job(self, job_id, fields_profile_suppression_bulk_delete_job=None) -> dict[str, Any]:
7533
6895
  """
7534
6896
  Retrieves the status and details of a bulk profile suppression deletion job using specified query fields and header revision.
7535
6897
 
@@ -7547,22 +6909,13 @@ class KlaviyoApp(APIApplication):
7547
6909
  raise ValueError("Missing required parameter 'job_id'")
7548
6910
  url = f"{self.base_url}/api/profile-suppression-bulk-delete-jobs/{job_id}"
7549
6911
  query_params = {
7550
- k: v
7551
- for k, v in [
7552
- (
7553
- "fields[profile-suppression-bulk-delete-job]",
7554
- fields_profile_suppression_bulk_delete_job,
7555
- )
7556
- ]
7557
- if v is not None
6912
+ k: v for k, v in [("fields[profile-suppression-bulk-delete-job]", fields_profile_suppression_bulk_delete_job)] if v is not None
7558
6913
  }
7559
6914
  response = self._get(url, params=query_params)
7560
6915
  response.raise_for_status()
7561
6916
  return response.json()
7562
6917
 
7563
- def create_or_update_profile(
7564
- self, additional_fields_profile=None, data=None
7565
- ) -> dict[str, Any]:
6918
+ async def create_or_update_profile(self, additional_fields_profile=None, data=None) -> dict[str, Any]:
7566
6919
  """
7567
6920
  The "POST /api/profile-import" operation imports profiles, accepting optional query parameters like "additional-fields[profile]" and requiring a "revision" header, with responses indicating success (200 or 201), bad requests (400), or internal server errors (500).
7568
6921
 
@@ -7618,21 +6971,15 @@ class KlaviyoApp(APIApplication):
7618
6971
  Tags:
7619
6972
  Profiles, Profiles1
7620
6973
  """
7621
- request_body = {
7622
- "data": data,
7623
- }
6974
+ request_body = {"data": data}
7624
6975
  request_body = {k: v for k, v in request_body.items() if v is not None}
7625
6976
  url = f"{self.base_url}/api/profile-import"
7626
- query_params = {
7627
- k: v
7628
- for k, v in [("additional-fields[profile]", additional_fields_profile)]
7629
- if v is not None
7630
- }
6977
+ query_params = {k: v for k, v in [("additional-fields[profile]", additional_fields_profile)] if v is not None}
7631
6978
  response = self._post(url, data=request_body, params=query_params)
7632
6979
  response.raise_for_status()
7633
6980
  return response.json()
7634
6981
 
7635
- def merge_profiles(self, data=None) -> dict[str, Any]:
6982
+ async def merge_profiles(self, data=None) -> dict[str, Any]:
7636
6983
  """
7637
6984
  The API operation at "/api/profile-merge" using the "POST" method merges user profiles, integrating data from a source profile into a destination profile, with the source profile being deleted upon successful completion, and requires a revision header for version control.
7638
6985
 
@@ -7668,9 +7015,7 @@ class KlaviyoApp(APIApplication):
7668
7015
  Tags:
7669
7016
  Profiles, Profiles1
7670
7017
  """
7671
- request_body = {
7672
- "data": data,
7673
- }
7018
+ request_body = {"data": data}
7674
7019
  request_body = {k: v for k, v in request_body.items() if v is not None}
7675
7020
  url = f"{self.base_url}/api/profile-merge"
7676
7021
  query_params = {}
@@ -7678,7 +7023,7 @@ class KlaviyoApp(APIApplication):
7678
7023
  response.raise_for_status()
7679
7024
  return response.json()
7680
7025
 
7681
- def create_or_update_push_token(self, data=None) -> Any:
7026
+ async def create_or_update_push_token(self, data=None) -> Any:
7682
7027
  """
7683
7028
  This API operation creates a new resource by posting to the "/api/push-tokens" endpoint, accepting a revision parameter in the request header, and returns a 202 response upon successful creation, with error responses for invalid requests or server errors.
7684
7029
 
@@ -7759,9 +7104,7 @@ class KlaviyoApp(APIApplication):
7759
7104
  Tags:
7760
7105
  Profiles, Profiles1
7761
7106
  """
7762
- request_body = {
7763
- "data": data,
7764
- }
7107
+ request_body = {"data": data}
7765
7108
  request_body = {k: v for k, v in request_body.items() if v is not None}
7766
7109
  url = f"{self.base_url}/api/push-tokens"
7767
7110
  query_params = {}
@@ -7769,7 +7112,7 @@ class KlaviyoApp(APIApplication):
7769
7112
  response.raise_for_status()
7770
7113
  return response.json()
7771
7114
 
7772
- def get_lists_for_profile(self, id, fields_list=None) -> dict[str, Any]:
7115
+ async def get_lists_for_profile(self, id, fields_list=None) -> dict[str, Any]:
7773
7116
  """
7774
7117
  This API operation retrieves a list associated with a specific profile identified by `{id}`, allowing optional filtering of fields via the `fields[list]` query parameter and specifying a revision via the `revision` header.
7775
7118
 
@@ -7786,14 +7129,12 @@ class KlaviyoApp(APIApplication):
7786
7129
  if id is None:
7787
7130
  raise ValueError("Missing required parameter 'id'")
7788
7131
  url = f"{self.base_url}/api/profiles/{id}/lists"
7789
- query_params = {
7790
- k: v for k, v in [("fields[list]", fields_list)] if v is not None
7791
- }
7132
+ query_params = {k: v for k, v in [("fields[list]", fields_list)] if v is not None}
7792
7133
  response = self._get(url, params=query_params)
7793
7134
  response.raise_for_status()
7794
7135
  return response.json()
7795
7136
 
7796
- def get_list_ids_for_profile(self, id) -> dict[str, Any]:
7137
+ async def get_list_ids_for_profile(self, id) -> dict[str, Any]:
7797
7138
  """
7798
7139
  Retrieves the lists associated with a specified profile ID via header-based version control.
7799
7140
 
@@ -7814,7 +7155,7 @@ class KlaviyoApp(APIApplication):
7814
7155
  response.raise_for_status()
7815
7156
  return response.json()
7816
7157
 
7817
- def get_segments_for_profile(self, id, fields_segment=None) -> dict[str, Any]:
7158
+ async def get_segments_for_profile(self, id, fields_segment=None) -> dict[str, Any]:
7818
7159
  """
7819
7160
  This API operation retrieves profile segment information for a specified profile ID, allowing for the selection of specific segment fields via query parameters and the specification of a revision in the request header.
7820
7161
 
@@ -7831,14 +7172,12 @@ class KlaviyoApp(APIApplication):
7831
7172
  if id is None:
7832
7173
  raise ValueError("Missing required parameter 'id'")
7833
7174
  url = f"{self.base_url}/api/profiles/{id}/segments"
7834
- query_params = {
7835
- k: v for k, v in [("fields[segment]", fields_segment)] if v is not None
7836
- }
7175
+ query_params = {k: v for k, v in [("fields[segment]", fields_segment)] if v is not None}
7837
7176
  response = self._get(url, params=query_params)
7838
7177
  response.raise_for_status()
7839
7178
  return response.json()
7840
7179
 
7841
- def get_segment_ids_for_profile(self, id) -> dict[str, Any]:
7180
+ async def get_segment_ids_for_profile(self, id) -> dict[str, Any]:
7842
7181
  """
7843
7182
  Retrieves the associated segments of a specific profile, requiring a revision header, and returns a 200 status on success with potential 400 or 500 error responses.
7844
7183
 
@@ -7859,13 +7198,8 @@ class KlaviyoApp(APIApplication):
7859
7198
  response.raise_for_status()
7860
7199
  return response.json()
7861
7200
 
7862
- def get_bulk_import_profiles_jobs(
7863
- self,
7864
- fields_profile_bulk_import_job=None,
7865
- filter=None,
7866
- page_cursor=None,
7867
- page_size=None,
7868
- sort=None,
7201
+ async def get_bulk_import_profiles_jobs(
7202
+ self, fields_profile_bulk_import_job=None, filter=None, page_cursor=None, page_size=None, sort=None
7869
7203
  ) -> dict[str, Any]:
7870
7204
  """
7871
7205
  The GET operation on `/api/profile-bulk-import-jobs` retrieves and filters paginated bulk profile import job records with customizable sorting, field selection, and cursor-based pagination.
@@ -7899,7 +7233,7 @@ class KlaviyoApp(APIApplication):
7899
7233
  response.raise_for_status()
7900
7234
  return response.json()
7901
7235
 
7902
- def bulk_import_profiles(self, data=None) -> dict[str, Any]:
7236
+ async def bulk_import_profiles(self, data=None) -> dict[str, Any]:
7903
7237
  """
7904
7238
  The POST operation at "/api/profile-bulk-import-jobs" creates a new bulk profile import job, allowing for the creation or update of multiple profiles, with a revision specified in the header.
7905
7239
 
@@ -8014,9 +7348,7 @@ class KlaviyoApp(APIApplication):
8014
7348
  Tags:
8015
7349
  Profiles, Bulk Import Profiles
8016
7350
  """
8017
- request_body = {
8018
- "data": data,
8019
- }
7351
+ request_body = {"data": data}
8020
7352
  request_body = {k: v for k, v in request_body.items() if v is not None}
8021
7353
  url = f"{self.base_url}/api/profile-bulk-import-jobs"
8022
7354
  query_params = {}
@@ -8024,12 +7356,8 @@ class KlaviyoApp(APIApplication):
8024
7356
  response.raise_for_status()
8025
7357
  return response.json()
8026
7358
 
8027
- def get_bulk_import_profiles_job(
8028
- self,
8029
- job_id,
8030
- fields_list=None,
8031
- fields_profile_bulk_import_job=None,
8032
- include=None,
7359
+ async def get_bulk_import_profiles_job(
7360
+ self, job_id, fields_list=None, fields_profile_bulk_import_job=None, include=None
8033
7361
  ) -> dict[str, Any]:
8034
7362
  """
8035
7363
  Retrieves the status and details of a specific bulk profile import job, including optional field selection and resource inclusion via query parameters.
@@ -8062,9 +7390,7 @@ class KlaviyoApp(APIApplication):
8062
7390
  response.raise_for_status()
8063
7391
  return response.json()
8064
7392
 
8065
- def get_list_for_bulk_import_profiles_job(
8066
- self, id, fields_list=None
8067
- ) -> dict[str, Any]:
7393
+ async def get_list_for_bulk_import_profiles_job(self, id, fields_list=None) -> dict[str, Any]:
8068
7394
  """
8069
7395
  Retrieves profile lists associated with a specific bulk import job ID, allowing field filtering via query parameters and including a revision header.
8070
7396
 
@@ -8081,14 +7407,12 @@ class KlaviyoApp(APIApplication):
8081
7407
  if id is None:
8082
7408
  raise ValueError("Missing required parameter 'id'")
8083
7409
  url = f"{self.base_url}/api/profile-bulk-import-jobs/{id}/lists"
8084
- query_params = {
8085
- k: v for k, v in [("fields[list]", fields_list)] if v is not None
8086
- }
7410
+ query_params = {k: v for k, v in [("fields[list]", fields_list)] if v is not None}
8087
7411
  response = self._get(url, params=query_params)
8088
7412
  response.raise_for_status()
8089
7413
  return response.json()
8090
7414
 
8091
- def get_list_ids_for_bulk_import_profiles_job(self, id) -> dict[str, Any]:
7415
+ async def get_list_ids_for_bulk_import_profiles_job(self, id) -> dict[str, Any]:
8092
7416
  """
8093
7417
  This API operation retrieves the relationships between a specific bulk profile import job and its associated lists, allowing the caller to fetch related list data using a GET request on the "/api/profile-bulk-import-jobs/{id}/relationships/lists" endpoint.
8094
7418
 
@@ -8109,13 +7433,8 @@ class KlaviyoApp(APIApplication):
8109
7433
  response.raise_for_status()
8110
7434
  return response.json()
8111
7435
 
8112
- def get_profiles_for_bulk_import_profiles_job(
8113
- self,
8114
- id,
8115
- additional_fields_profile=None,
8116
- fields_profile=None,
8117
- page_cursor=None,
8118
- page_size=None,
7436
+ async def get_profiles_for_bulk_import_profiles_job(
7437
+ self, id, additional_fields_profile=None, fields_profile=None, page_cursor=None, page_size=None
8119
7438
  ) -> dict[str, Any]:
8120
7439
  """
8121
7440
  The API operation defined at path "/api/profile-bulk-import-jobs/{id}/profiles" using the "GET" method retrieves a list of profiles associated with a specific bulk import job, allowing for pagination and customization of returned fields.
@@ -8150,9 +7469,7 @@ class KlaviyoApp(APIApplication):
8150
7469
  response.raise_for_status()
8151
7470
  return response.json()
8152
7471
 
8153
- def get_profile_ids_for_bulk_import_profiles_job(
8154
- self, id, page_cursor=None, page_size=None
8155
- ) -> dict[str, Any]:
7472
+ async def get_profile_ids_for_bulk_import_profiles_job(self, id, page_cursor=None, page_size=None) -> dict[str, Any]:
8156
7473
  """
8157
7474
  Retrieves a paginated list of profile relationships associated with a specific bulk import job using cursor-based pagination query parameters.
8158
7475
 
@@ -8169,19 +7486,13 @@ class KlaviyoApp(APIApplication):
8169
7486
  """
8170
7487
  if id is None:
8171
7488
  raise ValueError("Missing required parameter 'id'")
8172
- url = (
8173
- f"{self.base_url}/api/profile-bulk-import-jobs/{id}/relationships/profiles"
8174
- )
8175
- query_params = {
8176
- k: v
8177
- for k, v in [("page[cursor]", page_cursor), ("page[size]", page_size)]
8178
- if v is not None
8179
- }
7489
+ url = f"{self.base_url}/api/profile-bulk-import-jobs/{id}/relationships/profiles"
7490
+ query_params = {k: v for k, v in [("page[cursor]", page_cursor), ("page[size]", page_size)] if v is not None}
8180
7491
  response = self._get(url, params=query_params)
8181
7492
  response.raise_for_status()
8182
7493
  return response.json()
8183
7494
 
8184
- def get_errors_for_bulk_import_profiles_job(
7495
+ async def get_errors_for_bulk_import_profiles_job(
8185
7496
  self, id, fields_import_error=None, page_cursor=None, page_size=None
8186
7497
  ) -> dict[str, Any]:
8187
7498
  """
@@ -8204,18 +7515,14 @@ class KlaviyoApp(APIApplication):
8204
7515
  url = f"{self.base_url}/api/profile-bulk-import-jobs/{id}/import-errors"
8205
7516
  query_params = {
8206
7517
  k: v
8207
- for k, v in [
8208
- ("fields[import-error]", fields_import_error),
8209
- ("page[cursor]", page_cursor),
8210
- ("page[size]", page_size),
8211
- ]
7518
+ for k, v in [("fields[import-error]", fields_import_error), ("page[cursor]", page_cursor), ("page[size]", page_size)]
8212
7519
  if v is not None
8213
7520
  }
8214
7521
  response = self._get(url, params=query_params)
8215
7522
  response.raise_for_status()
8216
7523
  return response.json()
8217
7524
 
8218
- def bulk_subscribe_profiles(self, data=None) -> Any:
7525
+ async def bulk_subscribe_profiles(self, data=None) -> Any:
8219
7526
  """
8220
7527
  Subscribes one or more profiles to email/SMS marketing lists in bulk, handling consent and double opt-in where applicable.
8221
7528
 
@@ -8306,9 +7613,7 @@ class KlaviyoApp(APIApplication):
8306
7613
  Tags:
8307
7614
  Profiles, Consent
8308
7615
  """
8309
- request_body = {
8310
- "data": data,
8311
- }
7616
+ request_body = {"data": data}
8312
7617
  request_body = {k: v for k, v in request_body.items() if v is not None}
8313
7618
  url = f"{self.base_url}/api/profile-subscription-bulk-create-jobs"
8314
7619
  query_params = {}
@@ -8316,7 +7621,7 @@ class KlaviyoApp(APIApplication):
8316
7621
  response.raise_for_status()
8317
7622
  return response.json()
8318
7623
 
8319
- def bulk_unsubscribe_profiles(self, data=None) -> Any:
7624
+ async def bulk_unsubscribe_profiles(self, data=None) -> Any:
8320
7625
  """
8321
7626
  Initiates a bulk unsubscribe job to remove multiple profiles from email subscriptions asynchronously.
8322
7627
 
@@ -8395,9 +7700,7 @@ class KlaviyoApp(APIApplication):
8395
7700
  Tags:
8396
7701
  Profiles, Consent
8397
7702
  """
8398
- request_body = {
8399
- "data": data,
8400
- }
7703
+ request_body = {"data": data}
8401
7704
  request_body = {k: v for k, v in request_body.items() if v is not None}
8402
7705
  url = f"{self.base_url}/api/profile-subscription-bulk-delete-jobs"
8403
7706
  query_params = {}
@@ -8405,7 +7708,7 @@ class KlaviyoApp(APIApplication):
8405
7708
  response.raise_for_status()
8406
7709
  return response.json()
8407
7710
 
8408
- def query_campaign_values(self, page_cursor=None, data=None) -> dict[str, Any]:
7711
+ async def query_campaign_values(self, page_cursor=None, data=None) -> dict[str, Any]:
8409
7712
  """
8410
7713
  Creates a campaign values report, accepting a page cursor as a query parameter and a revision in the request header, returning data if successful.
8411
7714
 
@@ -8438,19 +7741,15 @@ class KlaviyoApp(APIApplication):
8438
7741
  Tags:
8439
7742
  Reporting
8440
7743
  """
8441
- request_body = {
8442
- "data": data,
8443
- }
7744
+ request_body = {"data": data}
8444
7745
  request_body = {k: v for k, v in request_body.items() if v is not None}
8445
7746
  url = f"{self.base_url}/api/campaign-values-reports"
8446
- query_params = {
8447
- k: v for k, v in [("page_cursor", page_cursor)] if v is not None
8448
- }
7747
+ query_params = {k: v for k, v in [("page_cursor", page_cursor)] if v is not None}
8449
7748
  response = self._post(url, data=request_body, params=query_params)
8450
7749
  response.raise_for_status()
8451
7750
  return response.json()
8452
7751
 
8453
- def query_flow_values(self, page_cursor=None, data=None) -> dict[str, Any]:
7752
+ async def query_flow_values(self, page_cursor=None, data=None) -> dict[str, Any]:
8454
7753
  """
8455
7754
  This API operation, using the POST method at "/api/flow-values-reports", allows users to generate reports by providing a page cursor in the query and a revision in the header, with potential responses indicating success (200) or error conditions (400, 500).
8456
7755
 
@@ -8483,19 +7782,15 @@ class KlaviyoApp(APIApplication):
8483
7782
  Tags:
8484
7783
  Reporting
8485
7784
  """
8486
- request_body = {
8487
- "data": data,
8488
- }
7785
+ request_body = {"data": data}
8489
7786
  request_body = {k: v for k, v in request_body.items() if v is not None}
8490
7787
  url = f"{self.base_url}/api/flow-values-reports"
8491
- query_params = {
8492
- k: v for k, v in [("page_cursor", page_cursor)] if v is not None
8493
- }
7788
+ query_params = {k: v for k, v in [("page_cursor", page_cursor)] if v is not None}
8494
7789
  response = self._post(url, data=request_body, params=query_params)
8495
7790
  response.raise_for_status()
8496
7791
  return response.json()
8497
7792
 
8498
- def query_flow_series(self, page_cursor=None, data=None) -> dict[str, Any]:
7793
+ async def query_flow_series(self, page_cursor=None, data=None) -> dict[str, Any]:
8499
7794
  """
8500
7795
  This API operation at "/api/flow-series-reports" utilizes the POST method to create a flow series report, allowing clients to specify pagination with the "page_cursor" query parameter and specify a revision via the "revision" header, with responses for successful execution (200), bad request (400), and internal server error (500).
8501
7796
 
@@ -8529,19 +7824,15 @@ class KlaviyoApp(APIApplication):
8529
7824
  Tags:
8530
7825
  Reporting
8531
7826
  """
8532
- request_body = {
8533
- "data": data,
8534
- }
7827
+ request_body = {"data": data}
8535
7828
  request_body = {k: v for k, v in request_body.items() if v is not None}
8536
7829
  url = f"{self.base_url}/api/flow-series-reports"
8537
- query_params = {
8538
- k: v for k, v in [("page_cursor", page_cursor)] if v is not None
8539
- }
7830
+ query_params = {k: v for k, v in [("page_cursor", page_cursor)] if v is not None}
8540
7831
  response = self._post(url, data=request_body, params=query_params)
8541
7832
  response.raise_for_status()
8542
7833
  return response.json()
8543
7834
 
8544
- def query_form_values(self, data=None) -> dict[str, Any]:
7835
+ async def query_form_values(self, data=None) -> dict[str, Any]:
8545
7836
  """
8546
7837
  Submits form values report data with a specified revision header.
8547
7838
 
@@ -8576,9 +7867,7 @@ class KlaviyoApp(APIApplication):
8576
7867
  Tags:
8577
7868
  Reporting
8578
7869
  """
8579
- request_body = {
8580
- "data": data,
8581
- }
7870
+ request_body = {"data": data}
8582
7871
  request_body = {k: v for k, v in request_body.items() if v is not None}
8583
7872
  url = f"{self.base_url}/api/form-values-reports"
8584
7873
  query_params = {}
@@ -8586,7 +7875,7 @@ class KlaviyoApp(APIApplication):
8586
7875
  response.raise_for_status()
8587
7876
  return response.json()
8588
7877
 
8589
- def query_form_series(self, data=None) -> dict[str, Any]:
7878
+ async def query_form_series(self, data=None) -> dict[str, Any]:
8590
7879
  """
8591
7880
  This API operation, exposed at the "/api/form-series-reports" path using the "POST" method, allows users to generate or submit form series reports, specifying a revision via a header parameter, and returns responses indicating success, bad request, or internal server error.
8592
7881
 
@@ -8622,9 +7911,7 @@ class KlaviyoApp(APIApplication):
8622
7911
  Tags:
8623
7912
  Reporting
8624
7913
  """
8625
- request_body = {
8626
- "data": data,
8627
- }
7914
+ request_body = {"data": data}
8628
7915
  request_body = {k: v for k, v in request_body.items() if v is not None}
8629
7916
  url = f"{self.base_url}/api/form-series-reports"
8630
7917
  query_params = {}
@@ -8632,7 +7919,7 @@ class KlaviyoApp(APIApplication):
8632
7919
  response.raise_for_status()
8633
7920
  return response.json()
8634
7921
 
8635
- def query_segment_values(self, data=None) -> dict[str, Any]:
7922
+ async def query_segment_values(self, data=None) -> dict[str, Any]:
8636
7923
  """
8637
7924
  Creates a report on segment values using a POST request to the "/api/segment-values-reports" endpoint, which requires a revision header and returns a report upon successful execution.
8638
7925
 
@@ -8663,9 +7950,7 @@ class KlaviyoApp(APIApplication):
8663
7950
  Tags:
8664
7951
  Reporting
8665
7952
  """
8666
- request_body = {
8667
- "data": data,
8668
- }
7953
+ request_body = {"data": data}
8669
7954
  request_body = {k: v for k, v in request_body.items() if v is not None}
8670
7955
  url = f"{self.base_url}/api/segment-values-reports"
8671
7956
  query_params = {}
@@ -8673,7 +7958,7 @@ class KlaviyoApp(APIApplication):
8673
7958
  response.raise_for_status()
8674
7959
  return response.json()
8675
7960
 
8676
- def query_segment_series(self, data=None) -> dict[str, Any]:
7961
+ async def query_segment_series(self, data=None) -> dict[str, Any]:
8677
7962
  """
8678
7963
  The POST operation at the "/api/segment-series-reports" path generates segment series reports, requiring a revision number provided in the header, and returns successful reports with a 200 status code or error messages for invalid requests (400) or server issues (500).
8679
7964
 
@@ -8705,9 +7990,7 @@ class KlaviyoApp(APIApplication):
8705
7990
  Tags:
8706
7991
  Reporting
8707
7992
  """
8708
- request_body = {
8709
- "data": data,
8710
- }
7993
+ request_body = {"data": data}
8711
7994
  request_body = {k: v for k, v in request_body.items() if v is not None}
8712
7995
  url = f"{self.base_url}/api/segment-series-reports"
8713
7996
  query_params = {}
@@ -8715,15 +7998,8 @@ class KlaviyoApp(APIApplication):
8715
7998
  response.raise_for_status()
8716
7999
  return response.json()
8717
8000
 
8718
- def get_reviews(
8719
- self,
8720
- fields_event=None,
8721
- fields_review=None,
8722
- filter=None,
8723
- include=None,
8724
- page_cursor=None,
8725
- page_size=None,
8726
- sort=None,
8001
+ async def get_reviews(
8002
+ self, fields_event=None, fields_review=None, filter=None, include=None, page_cursor=None, page_size=None, sort=None
8727
8003
  ) -> dict[str, Any]:
8728
8004
  """
8729
8005
  Retrieves review data with optional filtering, pagination, sorting, and field selection parameters for events and reviews.
@@ -8761,9 +8037,7 @@ class KlaviyoApp(APIApplication):
8761
8037
  response.raise_for_status()
8762
8038
  return response.json()
8763
8039
 
8764
- def get_review(
8765
- self, id, fields_event=None, fields_review=None, include=None
8766
- ) -> dict[str, Any]:
8040
+ async def get_review(self, id, fields_event=None, fields_review=None, include=None) -> dict[str, Any]:
8767
8041
  """
8768
8042
  The "/api/reviews/{id}" API endpoint uses the GET method to retrieve a specific review by its ID, allowing optional query parameters for selecting fields and specifying additional data to include, with support for a revision header.
8769
8043
 
@@ -8783,19 +8057,13 @@ class KlaviyoApp(APIApplication):
8783
8057
  raise ValueError("Missing required parameter 'id'")
8784
8058
  url = f"{self.base_url}/api/reviews/{id}"
8785
8059
  query_params = {
8786
- k: v
8787
- for k, v in [
8788
- ("fields[event]", fields_event),
8789
- ("fields[review]", fields_review),
8790
- ("include", include),
8791
- ]
8792
- if v is not None
8060
+ k: v for k, v in [("fields[event]", fields_event), ("fields[review]", fields_review), ("include", include)] if v is not None
8793
8061
  }
8794
8062
  response = self._get(url, params=query_params)
8795
8063
  response.raise_for_status()
8796
8064
  return response.json()
8797
8065
 
8798
- def update_review(self, id, data=None) -> dict[str, Any]:
8066
+ async def update_review(self, id, data=None) -> dict[str, Any]:
8799
8067
  """
8800
8068
  This API operation uses the PATCH method at the "/api/reviews/{id}" path to partially update a review by applying specific changes while maintaining the integrity of unchanged fields, requiring a revision header for processing.
8801
8069
 
@@ -8829,9 +8097,7 @@ class KlaviyoApp(APIApplication):
8829
8097
  """
8830
8098
  if id is None:
8831
8099
  raise ValueError("Missing required parameter 'id'")
8832
- request_body = {
8833
- "data": data,
8834
- }
8100
+ request_body = {"data": data}
8835
8101
  request_body = {k: v for k, v in request_body.items() if v is not None}
8836
8102
  url = f"{self.base_url}/api/reviews/{id}"
8837
8103
  query_params = {}
@@ -8839,15 +8105,8 @@ class KlaviyoApp(APIApplication):
8839
8105
  response.raise_for_status()
8840
8106
  return response.json()
8841
8107
 
8842
- def get_segments(
8843
- self,
8844
- fields_flow=None,
8845
- fields_segment=None,
8846
- fields_tag=None,
8847
- filter=None,
8848
- include=None,
8849
- page_cursor=None,
8850
- sort=None,
8108
+ async def get_segments(
8109
+ self, fields_flow=None, fields_segment=None, fields_tag=None, filter=None, include=None, page_cursor=None, sort=None
8851
8110
  ) -> dict[str, Any]:
8852
8111
  """
8853
8112
  Use this API endpoint to retrieve a list of segments, allowing you to filter the results by various criteria and customize the output with specific fields and sorting options.
@@ -8885,7 +8144,7 @@ class KlaviyoApp(APIApplication):
8885
8144
  response.raise_for_status()
8886
8145
  return response.json()
8887
8146
 
8888
- def create_segment(self, data=None) -> dict[str, Any]:
8147
+ async def create_segment(self, data=None) -> dict[str, Any]:
8889
8148
  """
8890
8149
  Creates a new segment with the specified configuration, returning the created resource upon success.
8891
8150
 
@@ -8974,9 +8233,7 @@ class KlaviyoApp(APIApplication):
8974
8233
  Tags:
8975
8234
  Segments
8976
8235
  """
8977
- request_body = {
8978
- "data": data,
8979
- }
8236
+ request_body = {"data": data}
8980
8237
  request_body = {k: v for k, v in request_body.items() if v is not None}
8981
8238
  url = f"{self.base_url}/api/segments"
8982
8239
  query_params = {}
@@ -8984,14 +8241,8 @@ class KlaviyoApp(APIApplication):
8984
8241
  response.raise_for_status()
8985
8242
  return response.json()
8986
8243
 
8987
- def get_segment(
8988
- self,
8989
- id,
8990
- additional_fields_segment=None,
8991
- fields_flow=None,
8992
- fields_segment=None,
8993
- fields_tag=None,
8994
- include=None,
8244
+ async def get_segment(
8245
+ self, id, additional_fields_segment=None, fields_flow=None, fields_segment=None, fields_tag=None, include=None
8995
8246
  ) -> dict[str, Any]:
8996
8247
  """
8997
8248
  Retrieve a segment by its ID, optionally including additional fields, flows, segment details, tags, and related data, with support for specifying a revision in the request header.
@@ -9028,7 +8279,7 @@ class KlaviyoApp(APIApplication):
9028
8279
  response.raise_for_status()
9029
8280
  return response.json()
9030
8281
 
9031
- def delete_segment(self, id) -> Any:
8282
+ async def delete_segment(self, id) -> Any:
9032
8283
  """
9033
8284
  Deletes the specified segment by ID, requiring a revision header, and returns a 204 for success, 400 for invalid requests, or 500 for server errors.
9034
8285
 
@@ -9049,7 +8300,7 @@ class KlaviyoApp(APIApplication):
9049
8300
  response.raise_for_status()
9050
8301
  return response.json()
9051
8302
 
9052
- def update_segment(self, id, data=None) -> dict[str, Any]:
8303
+ async def update_segment(self, id, data=None) -> dict[str, Any]:
9053
8304
  """
9054
8305
  The PATCH method at "/api/segments/{id}" allows partial updates to a segment resource, enabling modifications of specific fields while leaving others unchanged, with an optional revision header for version control.
9055
8306
 
@@ -9142,9 +8393,7 @@ class KlaviyoApp(APIApplication):
9142
8393
  """
9143
8394
  if id is None:
9144
8395
  raise ValueError("Missing required parameter 'id'")
9145
- request_body = {
9146
- "data": data,
9147
- }
8396
+ request_body = {"data": data}
9148
8397
  request_body = {k: v for k, v in request_body.items() if v is not None}
9149
8398
  url = f"{self.base_url}/api/segments/{id}"
9150
8399
  query_params = {}
@@ -9152,7 +8401,7 @@ class KlaviyoApp(APIApplication):
9152
8401
  response.raise_for_status()
9153
8402
  return response.json()
9154
8403
 
9155
- def get_tags_for_segment(self, id, fields_tag=None) -> dict[str, Any]:
8404
+ async def get_tags_for_segment(self, id, fields_tag=None) -> dict[str, Any]:
9156
8405
  """
9157
8406
  Retrieves tags for a segment by ID, allowing optional filtering by specific tag fields and accepting a revision in the request header.
9158
8407
 
@@ -9174,7 +8423,7 @@ class KlaviyoApp(APIApplication):
9174
8423
  response.raise_for_status()
9175
8424
  return response.json()
9176
8425
 
9177
- def get_tag_ids_for_segment(self, id) -> dict[str, Any]:
8426
+ async def get_tag_ids_for_segment(self, id) -> dict[str, Any]:
9178
8427
  """
9179
8428
  Retrieves the relationships and associated tags for a specific segment identified by its ID, including any revision header information.
9180
8429
 
@@ -9195,15 +8444,8 @@ class KlaviyoApp(APIApplication):
9195
8444
  response.raise_for_status()
9196
8445
  return response.json()
9197
8446
 
9198
- def get_profiles_for_segment(
9199
- self,
9200
- id,
9201
- additional_fields_profile=None,
9202
- fields_profile=None,
9203
- filter=None,
9204
- page_cursor=None,
9205
- page_size=None,
9206
- sort=None,
8447
+ async def get_profiles_for_segment(
8448
+ self, id, additional_fields_profile=None, fields_profile=None, filter=None, page_cursor=None, page_size=None, sort=None
9207
8449
  ) -> dict[str, Any]:
9208
8450
  """
9209
8451
  Retrieves a paginated list of profiles associated with a specific segment, supporting filtering, sorting, and field selection.
@@ -9242,9 +8484,7 @@ class KlaviyoApp(APIApplication):
9242
8484
  response.raise_for_status()
9243
8485
  return response.json()
9244
8486
 
9245
- def get_profile_ids_for_segment(
9246
- self, id, filter=None, page_cursor=None, page_size=None, sort=None
9247
- ) -> dict[str, Any]:
8487
+ async def get_profile_ids_for_segment(self, id, filter=None, page_cursor=None, page_size=None, sort=None) -> dict[str, Any]:
9248
8488
  """
9249
8489
  This API operation retrieves the profiles related to a segment with the specified ID using a GET method, allowing for filtering, pagination, sorting, and revision specification through query and header parameters.
9250
8490
 
@@ -9265,20 +8505,13 @@ class KlaviyoApp(APIApplication):
9265
8505
  raise ValueError("Missing required parameter 'id'")
9266
8506
  url = f"{self.base_url}/api/segments/{id}/relationships/profiles"
9267
8507
  query_params = {
9268
- k: v
9269
- for k, v in [
9270
- ("filter", filter),
9271
- ("page[cursor]", page_cursor),
9272
- ("page[size]", page_size),
9273
- ("sort", sort),
9274
- ]
9275
- if v is not None
8508
+ k: v for k, v in [("filter", filter), ("page[cursor]", page_cursor), ("page[size]", page_size), ("sort", sort)] if v is not None
9276
8509
  }
9277
8510
  response = self._get(url, params=query_params)
9278
8511
  response.raise_for_status()
9279
8512
  return response.json()
9280
8513
 
9281
- def get_flows_triggered_by_segment(self, id, fields_flow=None) -> dict[str, Any]:
8514
+ async def get_flows_triggered_by_segment(self, id, fields_flow=None) -> dict[str, Any]:
9282
8515
  """
9283
8516
  Retrieves flow triggers for a segment by ID, optionally filtering by specific flow fields and providing a revision in the header.
9284
8517
 
@@ -9295,14 +8528,12 @@ class KlaviyoApp(APIApplication):
9295
8528
  if id is None:
9296
8529
  raise ValueError("Missing required parameter 'id'")
9297
8530
  url = f"{self.base_url}/api/segments/{id}/flow-triggers"
9298
- query_params = {
9299
- k: v for k, v in [("fields[flow]", fields_flow)] if v is not None
9300
- }
8531
+ query_params = {k: v for k, v in [("fields[flow]", fields_flow)] if v is not None}
9301
8532
  response = self._get(url, params=query_params)
9302
8533
  response.raise_for_status()
9303
8534
  return response.json()
9304
8535
 
9305
- def get_ids_for_flows_triggered_by_segment(self, id) -> dict[str, Any]:
8536
+ async def get_ids_for_flows_triggered_by_segment(self, id) -> dict[str, Any]:
9306
8537
  """
9307
8538
  Retrieves the associated flow triggers linked to a specific segment by its ID, supporting a custom revision header for version control.
9308
8539
 
@@ -9323,14 +8554,8 @@ class KlaviyoApp(APIApplication):
9323
8554
  response.raise_for_status()
9324
8555
  return response.json()
9325
8556
 
9326
- def get_tags(
9327
- self,
9328
- fields_tag_group=None,
9329
- fields_tag=None,
9330
- filter=None,
9331
- include=None,
9332
- page_cursor=None,
9333
- sort=None,
8557
+ async def get_tags(
8558
+ self, fields_tag_group=None, fields_tag=None, filter=None, include=None, page_cursor=None, sort=None
9334
8559
  ) -> dict[str, Any]:
9335
8560
  """
9336
8561
  Retrieves a list of tags filtered, sorted, and paginated via query parameters while supporting selective field inclusion and specific API revisions via headers.
@@ -9366,7 +8591,7 @@ class KlaviyoApp(APIApplication):
9366
8591
  response.raise_for_status()
9367
8592
  return response.json()
9368
8593
 
9369
- def create_tag(self, data=None) -> dict[str, Any]:
8594
+ async def create_tag(self, data=None) -> dict[str, Any]:
9370
8595
  """
9371
8596
  Creates a new tag resource using the provided data, requiring a revision header and returning HTTP status codes for success (201), client errors (400), or server issues (500).
9372
8597
 
@@ -9398,9 +8623,7 @@ class KlaviyoApp(APIApplication):
9398
8623
  Tags:
9399
8624
  Tags, Tags1
9400
8625
  """
9401
- request_body = {
9402
- "data": data,
9403
- }
8626
+ request_body = {"data": data}
9404
8627
  request_body = {k: v for k, v in request_body.items() if v is not None}
9405
8628
  url = f"{self.base_url}/api/tags"
9406
8629
  query_params = {}
@@ -9408,9 +8631,7 @@ class KlaviyoApp(APIApplication):
9408
8631
  response.raise_for_status()
9409
8632
  return response.json()
9410
8633
 
9411
- def get_tag(
9412
- self, id, fields_tag_group=None, fields_tag=None, include=None
9413
- ) -> dict[str, Any]:
8634
+ async def get_tag(self, id, fields_tag_group=None, fields_tag=None, include=None) -> dict[str, Any]:
9414
8635
  """
9415
8636
  Retrieves a specific tag by ID with optional query parameters for field selection, included resources, and a header for revision control.
9416
8637
 
@@ -9430,19 +8651,13 @@ class KlaviyoApp(APIApplication):
9430
8651
  raise ValueError("Missing required parameter 'id'")
9431
8652
  url = f"{self.base_url}/api/tags/{id}"
9432
8653
  query_params = {
9433
- k: v
9434
- for k, v in [
9435
- ("fields[tag-group]", fields_tag_group),
9436
- ("fields[tag]", fields_tag),
9437
- ("include", include),
9438
- ]
9439
- if v is not None
8654
+ k: v for k, v in [("fields[tag-group]", fields_tag_group), ("fields[tag]", fields_tag), ("include", include)] if v is not None
9440
8655
  }
9441
8656
  response = self._get(url, params=query_params)
9442
8657
  response.raise_for_status()
9443
8658
  return response.json()
9444
8659
 
9445
- def delete_tag(self, id) -> Any:
8660
+ async def delete_tag(self, id) -> Any:
9446
8661
  """
9447
8662
  Deletes the specified tag by ID, requiring a revision header, with responses indicating success (204 No Content), bad request (400), or server error (500).
9448
8663
 
@@ -9463,7 +8678,7 @@ class KlaviyoApp(APIApplication):
9463
8678
  response.raise_for_status()
9464
8679
  return response.json()
9465
8680
 
9466
- def update_tag(self, id, data=None) -> Any:
8681
+ async def update_tag(self, id, data=None) -> Any:
9467
8682
  """
9468
8683
  Updates the specified tag (ID: {id}) with partial modifications using the revision header for conflict detection, returning 204 on success.
9469
8684
 
@@ -9491,9 +8706,7 @@ class KlaviyoApp(APIApplication):
9491
8706
  """
9492
8707
  if id is None:
9493
8708
  raise ValueError("Missing required parameter 'id'")
9494
- request_body = {
9495
- "data": data,
9496
- }
8709
+ request_body = {"data": data}
9497
8710
  request_body = {k: v for k, v in request_body.items() if v is not None}
9498
8711
  url = f"{self.base_url}/api/tags/{id}"
9499
8712
  query_params = {}
@@ -9501,7 +8714,7 @@ class KlaviyoApp(APIApplication):
9501
8714
  response.raise_for_status()
9502
8715
  return response.json()
9503
8716
 
9504
- def get_flow_ids_for_tag(self, id) -> dict[str, Any]:
8717
+ async def get_flow_ids_for_tag(self, id) -> dict[str, Any]:
9505
8718
  """
9506
8719
  Retrieves the associated flow resources linked to the specified tag ID, using the provided revision header for version control.
9507
8720
 
@@ -9522,7 +8735,7 @@ class KlaviyoApp(APIApplication):
9522
8735
  response.raise_for_status()
9523
8736
  return response.json()
9524
8737
 
9525
- def tag_flows(self, id, data=None) -> Any:
8738
+ async def tag_flows(self, id, data=None) -> Any:
9526
8739
  """
9527
8740
  The API operation at path "/api/tags/{id}/relationships/flows" using the "POST" method creates a new relationship between a tag and a flow, optionally specifying a revision in the header.
9528
8741
 
@@ -9553,9 +8766,7 @@ class KlaviyoApp(APIApplication):
9553
8766
  """
9554
8767
  if id is None:
9555
8768
  raise ValueError("Missing required parameter 'id'")
9556
- request_body = {
9557
- "data": data,
9558
- }
8769
+ request_body = {"data": data}
9559
8770
  request_body = {k: v for k, v in request_body.items() if v is not None}
9560
8771
  url = f"{self.base_url}/api/tags/{id}/relationships/flows"
9561
8772
  query_params = {}
@@ -9563,7 +8774,7 @@ class KlaviyoApp(APIApplication):
9563
8774
  response.raise_for_status()
9564
8775
  return response.json()
9565
8776
 
9566
- def remove_tag_from_flows(self, id, data=None) -> Any:
8777
+ async def remove_tag_from_flows(self, id, data=None) -> Any:
9567
8778
  """
9568
8779
  Deletes the relationship between the specified tag and associated flows, returning a 204 No Content response upon successful deletion.
9569
8780
 
@@ -9594,9 +8805,7 @@ class KlaviyoApp(APIApplication):
9594
8805
  """
9595
8806
  if id is None:
9596
8807
  raise ValueError("Missing required parameter 'id'")
9597
- request_body = {
9598
- "data": data,
9599
- }
8808
+ request_body = {"data": data}
9600
8809
  request_body = {k: v for k, v in request_body.items() if v is not None}
9601
8810
  url = f"{self.base_url}/api/tags/{id}/relationships/flows"
9602
8811
  query_params = {}
@@ -9604,7 +8813,7 @@ class KlaviyoApp(APIApplication):
9604
8813
  response.raise_for_status()
9605
8814
  return response.json()
9606
8815
 
9607
- def get_campaign_ids_for_tag(self, id) -> dict[str, Any]:
8816
+ async def get_campaign_ids_for_tag(self, id) -> dict[str, Any]:
9608
8817
  """
9609
8818
  This API operation retrieves relationships between a tag with the specified ID and campaigns, using the GET method at the path "/api/tags/{id}/relationships/campaigns".
9610
8819
 
@@ -9625,7 +8834,7 @@ class KlaviyoApp(APIApplication):
9625
8834
  response.raise_for_status()
9626
8835
  return response.json()
9627
8836
 
9628
- def tag_campaigns(self, id, data=None) -> Any:
8837
+ async def tag_campaigns(self, id, data=None) -> Any:
9629
8838
  """
9630
8839
  Creates a relationship between the specified tag and campaign(s) using the "revision" header for concurrency control.
9631
8840
 
@@ -9656,9 +8865,7 @@ class KlaviyoApp(APIApplication):
9656
8865
  """
9657
8866
  if id is None:
9658
8867
  raise ValueError("Missing required parameter 'id'")
9659
- request_body = {
9660
- "data": data,
9661
- }
8868
+ request_body = {"data": data}
9662
8869
  request_body = {k: v for k, v in request_body.items() if v is not None}
9663
8870
  url = f"{self.base_url}/api/tags/{id}/relationships/campaigns"
9664
8871
  query_params = {}
@@ -9666,7 +8873,7 @@ class KlaviyoApp(APIApplication):
9666
8873
  response.raise_for_status()
9667
8874
  return response.json()
9668
8875
 
9669
- def remove_tag_from_campaigns(self, id, data=None) -> Any:
8876
+ async def remove_tag_from_campaigns(self, id, data=None) -> Any:
9670
8877
  """
9671
8878
  The API operation defined at `/api/tags/{id}/relationships/campaigns` using the `DELETE` method removes the relationship between a tag with the specified ID and associated campaigns, requiring a `revision` header and returning a successful response with a 204 status code if completed correctly.
9672
8879
 
@@ -9697,9 +8904,7 @@ class KlaviyoApp(APIApplication):
9697
8904
  """
9698
8905
  if id is None:
9699
8906
  raise ValueError("Missing required parameter 'id'")
9700
- request_body = {
9701
- "data": data,
9702
- }
8907
+ request_body = {"data": data}
9703
8908
  request_body = {k: v for k, v in request_body.items() if v is not None}
9704
8909
  url = f"{self.base_url}/api/tags/{id}/relationships/campaigns"
9705
8910
  query_params = {}
@@ -9707,7 +8912,7 @@ class KlaviyoApp(APIApplication):
9707
8912
  response.raise_for_status()
9708
8913
  return response.json()
9709
8914
 
9710
- def get_list_ids_for_tag(self, id) -> dict[str, Any]:
8915
+ async def get_list_ids_for_tag(self, id) -> dict[str, Any]:
9711
8916
  """
9712
8917
  Retrieves the relationship details for lists associated with a specified tag ID, requiring a revision header parameter.
9713
8918
 
@@ -9728,7 +8933,7 @@ class KlaviyoApp(APIApplication):
9728
8933
  response.raise_for_status()
9729
8934
  return response.json()
9730
8935
 
9731
- def tag_lists(self, id, data=None) -> Any:
8936
+ async def tag_lists(self, id, data=None) -> Any:
9732
8937
  """
9733
8938
  Creates a new relationship between a specified tag and lists using the provided header revision.
9734
8939
 
@@ -9759,9 +8964,7 @@ class KlaviyoApp(APIApplication):
9759
8964
  """
9760
8965
  if id is None:
9761
8966
  raise ValueError("Missing required parameter 'id'")
9762
- request_body = {
9763
- "data": data,
9764
- }
8967
+ request_body = {"data": data}
9765
8968
  request_body = {k: v for k, v in request_body.items() if v is not None}
9766
8969
  url = f"{self.base_url}/api/tags/{id}/relationships/lists"
9767
8970
  query_params = {}
@@ -9769,7 +8972,7 @@ class KlaviyoApp(APIApplication):
9769
8972
  response.raise_for_status()
9770
8973
  return response.json()
9771
8974
 
9772
- def remove_tag_from_lists(self, id, data=None) -> Any:
8975
+ async def remove_tag_from_lists(self, id, data=None) -> Any:
9773
8976
  """
9774
8977
  Deletes the relationship between a tag with the specified ID and its associated lists, requiring a revision header.
9775
8978
 
@@ -9800,9 +9003,7 @@ class KlaviyoApp(APIApplication):
9800
9003
  """
9801
9004
  if id is None:
9802
9005
  raise ValueError("Missing required parameter 'id'")
9803
- request_body = {
9804
- "data": data,
9805
- }
9006
+ request_body = {"data": data}
9806
9007
  request_body = {k: v for k, v in request_body.items() if v is not None}
9807
9008
  url = f"{self.base_url}/api/tags/{id}/relationships/lists"
9808
9009
  query_params = {}
@@ -9810,7 +9011,7 @@ class KlaviyoApp(APIApplication):
9810
9011
  response.raise_for_status()
9811
9012
  return response.json()
9812
9013
 
9813
- def get_segment_ids_for_tag(self, id) -> dict[str, Any]:
9014
+ async def get_segment_ids_for_tag(self, id) -> dict[str, Any]:
9814
9015
  """
9815
9016
  Retrieves a list of relationships between a tag identified by `{id}` and segments, with the option to specify a revision in the request header.
9816
9017
 
@@ -9831,7 +9032,7 @@ class KlaviyoApp(APIApplication):
9831
9032
  response.raise_for_status()
9832
9033
  return response.json()
9833
9034
 
9834
- def tag_segments(self, id, data=None) -> Any:
9035
+ async def tag_segments(self, id, data=None) -> Any:
9835
9036
  """
9836
9037
  Creates a relationship between a tag identified by `{id}` and one or more segments, using the specified revision from the request header.
9837
9038
 
@@ -9862,9 +9063,7 @@ class KlaviyoApp(APIApplication):
9862
9063
  """
9863
9064
  if id is None:
9864
9065
  raise ValueError("Missing required parameter 'id'")
9865
- request_body = {
9866
- "data": data,
9867
- }
9066
+ request_body = {"data": data}
9868
9067
  request_body = {k: v for k, v in request_body.items() if v is not None}
9869
9068
  url = f"{self.base_url}/api/tags/{id}/relationships/segments"
9870
9069
  query_params = {}
@@ -9872,7 +9071,7 @@ class KlaviyoApp(APIApplication):
9872
9071
  response.raise_for_status()
9873
9072
  return response.json()
9874
9073
 
9875
- def remove_tag_from_segments(self, id, data=None) -> Any:
9074
+ async def remove_tag_from_segments(self, id, data=None) -> Any:
9876
9075
  """
9877
9076
  Removes tag associations with one or more segments by specifying the tag ID in the path and segment relationships in the request body.
9878
9077
 
@@ -9903,9 +9102,7 @@ class KlaviyoApp(APIApplication):
9903
9102
  """
9904
9103
  if id is None:
9905
9104
  raise ValueError("Missing required parameter 'id'")
9906
- request_body = {
9907
- "data": data,
9908
- }
9105
+ request_body = {"data": data}
9909
9106
  request_body = {k: v for k, v in request_body.items() if v is not None}
9910
9107
  url = f"{self.base_url}/api/tags/{id}/relationships/segments"
9911
9108
  query_params = {}
@@ -9913,7 +9110,7 @@ class KlaviyoApp(APIApplication):
9913
9110
  response.raise_for_status()
9914
9111
  return response.json()
9915
9112
 
9916
- def get_tag_group_for_tag(self, id, fields_tag_group=None) -> dict[str, Any]:
9113
+ async def get_tag_group_for_tag(self, id, fields_tag_group=None) -> dict[str, Any]:
9917
9114
  """
9918
9115
  Retrieves the details of a tag group associated with the specified tag ID, allowing field selection via query parameters and revision specification via headers.
9919
9116
 
@@ -9930,14 +9127,12 @@ class KlaviyoApp(APIApplication):
9930
9127
  if id is None:
9931
9128
  raise ValueError("Missing required parameter 'id'")
9932
9129
  url = f"{self.base_url}/api/tags/{id}/tag-group"
9933
- query_params = {
9934
- k: v for k, v in [("fields[tag-group]", fields_tag_group)] if v is not None
9935
- }
9130
+ query_params = {k: v for k, v in [("fields[tag-group]", fields_tag_group)] if v is not None}
9936
9131
  response = self._get(url, params=query_params)
9937
9132
  response.raise_for_status()
9938
9133
  return response.json()
9939
9134
 
9940
- def get_tag_group_id_for_tag(self, id) -> dict[str, Any]:
9135
+ async def get_tag_group_id_for_tag(self, id) -> dict[str, Any]:
9941
9136
  """
9942
9137
  Retrieves the tag-group relationship details for the specified tag ID, including optional revision header parameters.
9943
9138
 
@@ -9958,9 +9153,7 @@ class KlaviyoApp(APIApplication):
9958
9153
  response.raise_for_status()
9959
9154
  return response.json()
9960
9155
 
9961
- def get_tag_groups(
9962
- self, fields_tag_group=None, filter=None, page_cursor=None, sort=None
9963
- ) -> dict[str, Any]:
9156
+ async def get_tag_groups(self, fields_tag_group=None, filter=None, page_cursor=None, sort=None) -> dict[str, Any]:
9964
9157
  """
9965
9158
  Retrieves a list of tag groups with optional filtering, sorting, pagination via cursor, field selection, and revision headers, returning appropriate status responses.
9966
9159
 
@@ -9979,19 +9172,14 @@ class KlaviyoApp(APIApplication):
9979
9172
  url = f"{self.base_url}/api/tag-groups"
9980
9173
  query_params = {
9981
9174
  k: v
9982
- for k, v in [
9983
- ("fields[tag-group]", fields_tag_group),
9984
- ("filter", filter),
9985
- ("page[cursor]", page_cursor),
9986
- ("sort", sort),
9987
- ]
9175
+ for k, v in [("fields[tag-group]", fields_tag_group), ("filter", filter), ("page[cursor]", page_cursor), ("sort", sort)]
9988
9176
  if v is not None
9989
9177
  }
9990
9178
  response = self._get(url, params=query_params)
9991
9179
  response.raise_for_status()
9992
9180
  return response.json()
9993
9181
 
9994
- def create_tag_group(self, data=None) -> dict[str, Any]:
9182
+ async def create_tag_group(self, data=None) -> dict[str, Any]:
9995
9183
  """
9996
9184
  Creates a new tag group with the specified revision header, returning a 201 response on successful creation or appropriate error codes (400/500) for failures.
9997
9185
 
@@ -10016,9 +9204,7 @@ class KlaviyoApp(APIApplication):
10016
9204
  Tags:
10017
9205
  Tags, Tag Groups
10018
9206
  """
10019
- request_body = {
10020
- "data": data,
10021
- }
9207
+ request_body = {"data": data}
10022
9208
  request_body = {k: v for k, v in request_body.items() if v is not None}
10023
9209
  url = f"{self.base_url}/api/tag-groups"
10024
9210
  query_params = {}
@@ -10026,7 +9212,7 @@ class KlaviyoApp(APIApplication):
10026
9212
  response.raise_for_status()
10027
9213
  return response.json()
10028
9214
 
10029
- def get_tag_group(self, id, fields_tag_group=None) -> dict[str, Any]:
9215
+ async def get_tag_group(self, id, fields_tag_group=None) -> dict[str, Any]:
10030
9216
  """
10031
9217
  Retrieves a tag group by ID, allowing optional filtering by specific fields and including a revision header, returning a successful response with a 200 status code.
10032
9218
 
@@ -10043,14 +9229,12 @@ class KlaviyoApp(APIApplication):
10043
9229
  if id is None:
10044
9230
  raise ValueError("Missing required parameter 'id'")
10045
9231
  url = f"{self.base_url}/api/tag-groups/{id}"
10046
- query_params = {
10047
- k: v for k, v in [("fields[tag-group]", fields_tag_group)] if v is not None
10048
- }
9232
+ query_params = {k: v for k, v in [("fields[tag-group]", fields_tag_group)] if v is not None}
10049
9233
  response = self._get(url, params=query_params)
10050
9234
  response.raise_for_status()
10051
9235
  return response.json()
10052
9236
 
10053
- def delete_tag_group(self, id) -> dict[str, Any]:
9237
+ async def delete_tag_group(self, id) -> dict[str, Any]:
10054
9238
  """
10055
9239
  Deletes a tag group by its ID, with the revision specified in the request header, returning success if the operation completes without errors.
10056
9240
 
@@ -10071,7 +9255,7 @@ class KlaviyoApp(APIApplication):
10071
9255
  response.raise_for_status()
10072
9256
  return response.json()
10073
9257
 
10074
- def update_tag_group(self, id, data=None) -> dict[str, Any]:
9258
+ async def update_tag_group(self, id, data=None) -> dict[str, Any]:
10075
9259
  """
10076
9260
  Updates the specified tag group by ID using partial modifications, requiring a revision header and returning 200, 400, or 500 status codes.
10077
9261
 
@@ -10103,9 +9287,7 @@ class KlaviyoApp(APIApplication):
10103
9287
  """
10104
9288
  if id is None:
10105
9289
  raise ValueError("Missing required parameter 'id'")
10106
- request_body = {
10107
- "data": data,
10108
- }
9290
+ request_body = {"data": data}
10109
9291
  request_body = {k: v for k, v in request_body.items() if v is not None}
10110
9292
  url = f"{self.base_url}/api/tag-groups/{id}"
10111
9293
  query_params = {}
@@ -10113,7 +9295,7 @@ class KlaviyoApp(APIApplication):
10113
9295
  response.raise_for_status()
10114
9296
  return response.json()
10115
9297
 
10116
- def get_tags_for_tag_group(self, id, fields_tag=None) -> dict[str, Any]:
9298
+ async def get_tags_for_tag_group(self, id, fields_tag=None) -> dict[str, Any]:
10117
9299
  """
10118
9300
  This API operation retrieves a list of tags associated with a specific tag group, identified by `{id}`, allowing optional filtering by specific tag fields via the `fields[tag]` query parameter, with support for specifying a revision in the request header.
10119
9301
 
@@ -10135,7 +9317,7 @@ class KlaviyoApp(APIApplication):
10135
9317
  response.raise_for_status()
10136
9318
  return response.json()
10137
9319
 
10138
- def get_tag_ids_for_tag_group(self, id) -> dict[str, Any]:
9320
+ async def get_tag_ids_for_tag_group(self, id) -> dict[str, Any]:
10139
9321
  """
10140
9322
  This GET operation retrieves the relationships between a specific tag group and its associated tags, identified by the provided `{id}` in the path, with an optional `revision` header for additional context.
10141
9323
 
@@ -10156,9 +9338,7 @@ class KlaviyoApp(APIApplication):
10156
9338
  response.raise_for_status()
10157
9339
  return response.json()
10158
9340
 
10159
- def get_templates(
10160
- self, fields_template=None, filter=None, page_cursor=None, sort=None
10161
- ) -> dict[str, Any]:
9341
+ async def get_templates(self, fields_template=None, filter=None, page_cursor=None, sort=None) -> dict[str, Any]:
10162
9342
  """
10163
9343
  Retrieves template resources with optional filtering, sorting, pagination, and field selection.
10164
9344
 
@@ -10177,19 +9357,14 @@ class KlaviyoApp(APIApplication):
10177
9357
  url = f"{self.base_url}/api/templates"
10178
9358
  query_params = {
10179
9359
  k: v
10180
- for k, v in [
10181
- ("fields[template]", fields_template),
10182
- ("filter", filter),
10183
- ("page[cursor]", page_cursor),
10184
- ("sort", sort),
10185
- ]
9360
+ for k, v in [("fields[template]", fields_template), ("filter", filter), ("page[cursor]", page_cursor), ("sort", sort)]
10186
9361
  if v is not None
10187
9362
  }
10188
9363
  response = self._get(url, params=query_params)
10189
9364
  response.raise_for_status()
10190
9365
  return response.json()
10191
9366
 
10192
- def create_template(self, data=None) -> dict[str, Any]:
9367
+ async def create_template(self, data=None) -> dict[str, Any]:
10193
9368
  """
10194
9369
  Creates a new template with the specified revision, returning a successful response if created or error responses for bad requests or server failures.
10195
9370
 
@@ -10216,9 +9391,7 @@ class KlaviyoApp(APIApplication):
10216
9391
  Tags:
10217
9392
  Templates, Templates1
10218
9393
  """
10219
- request_body = {
10220
- "data": data,
10221
- }
9394
+ request_body = {"data": data}
10222
9395
  request_body = {k: v for k, v in request_body.items() if v is not None}
10223
9396
  url = f"{self.base_url}/api/templates"
10224
9397
  query_params = {}
@@ -10226,7 +9399,7 @@ class KlaviyoApp(APIApplication):
10226
9399
  response.raise_for_status()
10227
9400
  return response.json()
10228
9401
 
10229
- def get_template(self, id, fields_template=None) -> dict[str, Any]:
9402
+ async def get_template(self, id, fields_template=None) -> dict[str, Any]:
10230
9403
  """
10231
9404
  The API operation defined at the path "/api/templates/{id}" using the "GET" method retrieves a specific template by its ID, optionally specifying fields to include and a revision in the headers, returning a successful response with HTTP status 200.
10232
9405
 
@@ -10243,14 +9416,12 @@ class KlaviyoApp(APIApplication):
10243
9416
  if id is None:
10244
9417
  raise ValueError("Missing required parameter 'id'")
10245
9418
  url = f"{self.base_url}/api/templates/{id}"
10246
- query_params = {
10247
- k: v for k, v in [("fields[template]", fields_template)] if v is not None
10248
- }
9419
+ query_params = {k: v for k, v in [("fields[template]", fields_template)] if v is not None}
10249
9420
  response = self._get(url, params=query_params)
10250
9421
  response.raise_for_status()
10251
9422
  return response.json()
10252
9423
 
10253
- def delete_template(self, id) -> Any:
9424
+ async def delete_template(self, id) -> Any:
10254
9425
  """
10255
9426
  Deletes a template by ID with optional revision header, returning 204 on success or 400/500 for client/server errors.
10256
9427
 
@@ -10271,7 +9442,7 @@ class KlaviyoApp(APIApplication):
10271
9442
  response.raise_for_status()
10272
9443
  return response.json()
10273
9444
 
10274
- def update_template(self, id, data=None) -> dict[str, Any]:
9445
+ async def update_template(self, id, data=None) -> dict[str, Any]:
10275
9446
  """
10276
9447
  Updates a template's properties using partial modifications with a specified revision header, returning 200 on success.
10277
9448
 
@@ -10301,9 +9472,7 @@ class KlaviyoApp(APIApplication):
10301
9472
  """
10302
9473
  if id is None:
10303
9474
  raise ValueError("Missing required parameter 'id'")
10304
- request_body = {
10305
- "data": data,
10306
- }
9475
+ request_body = {"data": data}
10307
9476
  request_body = {k: v for k, v in request_body.items() if v is not None}
10308
9477
  url = f"{self.base_url}/api/templates/{id}"
10309
9478
  query_params = {}
@@ -10311,7 +9480,7 @@ class KlaviyoApp(APIApplication):
10311
9480
  response.raise_for_status()
10312
9481
  return response.json()
10313
9482
 
10314
- def render_template(self, data=None) -> dict[str, Any]:
9483
+ async def render_template(self, data=None) -> dict[str, Any]:
10315
9484
  """
10316
9485
  Renders a template using the specified revision header, returning success (201) or error status (400/500).
10317
9486
 
@@ -10336,9 +9505,7 @@ class KlaviyoApp(APIApplication):
10336
9505
  Tags:
10337
9506
  Templates, Templates1
10338
9507
  """
10339
- request_body = {
10340
- "data": data,
10341
- }
9508
+ request_body = {"data": data}
10342
9509
  request_body = {k: v for k, v in request_body.items() if v is not None}
10343
9510
  url = f"{self.base_url}/api/template-render"
10344
9511
  query_params = {}
@@ -10346,7 +9513,7 @@ class KlaviyoApp(APIApplication):
10346
9513
  response.raise_for_status()
10347
9514
  return response.json()
10348
9515
 
10349
- def clone_template(self, data=None) -> dict[str, Any]:
9516
+ async def clone_template(self, data=None) -> dict[str, Any]:
10350
9517
  """
10351
9518
  Creates a new template by cloning an existing one, requiring a revision header parameter and returning success (201), bad request (400), or server error (500) responses.
10352
9519
 
@@ -10371,9 +9538,7 @@ class KlaviyoApp(APIApplication):
10371
9538
  Tags:
10372
9539
  Templates, Templates1
10373
9540
  """
10374
- request_body = {
10375
- "data": data,
10376
- }
9541
+ request_body = {"data": data}
10377
9542
  request_body = {k: v for k, v in request_body.items() if v is not None}
10378
9543
  url = f"{self.base_url}/api/template-clone"
10379
9544
  query_params = {}
@@ -10381,13 +9546,8 @@ class KlaviyoApp(APIApplication):
10381
9546
  response.raise_for_status()
10382
9547
  return response.json()
10383
9548
 
10384
- def get_all_universal_content(
10385
- self,
10386
- fields_template_universal_content=None,
10387
- filter=None,
10388
- page_cursor=None,
10389
- page_size=None,
10390
- sort=None,
9549
+ async def get_all_universal_content(
9550
+ self, fields_template_universal_content=None, filter=None, page_cursor=None, page_size=None, sort=None
10391
9551
  ) -> dict[str, Any]:
10392
9552
  """
10393
9553
  This API operation uses the GET method at the "/api/template-universal-content" path to retrieve template universal content data, allowing filtering and sorting with optional parameters for fields, filter, pagination, and sorting, while requiring a revision in the header.
@@ -10409,10 +9569,7 @@ class KlaviyoApp(APIApplication):
10409
9569
  query_params = {
10410
9570
  k: v
10411
9571
  for k, v in [
10412
- (
10413
- "fields[template-universal-content]",
10414
- fields_template_universal_content,
10415
- ),
9572
+ ("fields[template-universal-content]", fields_template_universal_content),
10416
9573
  ("filter", filter),
10417
9574
  ("page[cursor]", page_cursor),
10418
9575
  ("page[size]", page_size),
@@ -10424,7 +9581,7 @@ class KlaviyoApp(APIApplication):
10424
9581
  response.raise_for_status()
10425
9582
  return response.json()
10426
9583
 
10427
- def create_universal_content(self, data=None) -> dict[str, Any]:
9584
+ async def create_universal_content(self, data=None) -> dict[str, Any]:
10428
9585
  """
10429
9586
  Generates universal content templates with optional revision control in headers, returning success (201) or error codes (400, 500).
10430
9587
 
@@ -10463,9 +9620,7 @@ class KlaviyoApp(APIApplication):
10463
9620
  Tags:
10464
9621
  Templates, Universal Content
10465
9622
  """
10466
- request_body = {
10467
- "data": data,
10468
- }
9623
+ request_body = {"data": data}
10469
9624
  request_body = {k: v for k, v in request_body.items() if v is not None}
10470
9625
  url = f"{self.base_url}/api/template-universal-content"
10471
9626
  query_params = {}
@@ -10473,9 +9628,7 @@ class KlaviyoApp(APIApplication):
10473
9628
  response.raise_for_status()
10474
9629
  return response.json()
10475
9630
 
10476
- def get_universal_content(
10477
- self, id, fields_template_universal_content=None
10478
- ) -> dict[str, Any]:
9631
+ async def get_universal_content(self, id, fields_template_universal_content=None) -> dict[str, Any]:
10479
9632
  """
10480
9633
  This API operation retrieves a template with universal content specified by the `{id}` using the GET method, allowing optional filtering by specific fields and specifying a revision in the header.
10481
9634
 
@@ -10492,21 +9645,12 @@ class KlaviyoApp(APIApplication):
10492
9645
  if id is None:
10493
9646
  raise ValueError("Missing required parameter 'id'")
10494
9647
  url = f"{self.base_url}/api/template-universal-content/{id}"
10495
- query_params = {
10496
- k: v
10497
- for k, v in [
10498
- (
10499
- "fields[template-universal-content]",
10500
- fields_template_universal_content,
10501
- )
10502
- ]
10503
- if v is not None
10504
- }
9648
+ query_params = {k: v for k, v in [("fields[template-universal-content]", fields_template_universal_content)] if v is not None}
10505
9649
  response = self._get(url, params=query_params)
10506
9650
  response.raise_for_status()
10507
9651
  return response.json()
10508
9652
 
10509
- def delete_universal_content(self, id) -> Any:
9653
+ async def delete_universal_content(self, id) -> Any:
10510
9654
  """
10511
9655
  Deletes the specified universal content item by ID, requiring a revision header, and returns 204 No Content upon successful deletion.
10512
9656
 
@@ -10527,7 +9671,7 @@ class KlaviyoApp(APIApplication):
10527
9671
  response.raise_for_status()
10528
9672
  return response.json()
10529
9673
 
10530
- def update_universal_content(self, id, data=None) -> dict[str, Any]:
9674
+ async def update_universal_content(self, id, data=None) -> dict[str, Any]:
10531
9675
  """
10532
9676
  The PATCH operation at "/api/template-universal-content/{id}" partially updates a template's content by specifying specific changes in the request body, with the revision specified in the header, returning a successful response or error based on the request's validity.
10533
9677
 
@@ -10570,9 +9714,7 @@ class KlaviyoApp(APIApplication):
10570
9714
  """
10571
9715
  if id is None:
10572
9716
  raise ValueError("Missing required parameter 'id'")
10573
- request_body = {
10574
- "data": data,
10575
- }
9717
+ request_body = {"data": data}
10576
9718
  request_body = {k: v for k, v in request_body.items() if v is not None}
10577
9719
  url = f"{self.base_url}/api/template-universal-content/{id}"
10578
9720
  query_params = {}
@@ -10580,9 +9722,7 @@ class KlaviyoApp(APIApplication):
10580
9722
  response.raise_for_status()
10581
9723
  return response.json()
10582
9724
 
10583
- def get_tracking_settings(
10584
- self, fields_tracking_setting=None, page_cursor=None, page_size=None
10585
- ) -> dict[str, Any]:
9725
+ async def get_tracking_settings(self, fields_tracking_setting=None, page_cursor=None, page_size=None) -> dict[str, Any]:
10586
9726
  """
10587
9727
  Retrieves all tracking settings in an account with optional pagination and field filtering support.
10588
9728
 
@@ -10600,18 +9740,14 @@ class KlaviyoApp(APIApplication):
10600
9740
  url = f"{self.base_url}/api/tracking-settings"
10601
9741
  query_params = {
10602
9742
  k: v
10603
- for k, v in [
10604
- ("fields[tracking-setting]", fields_tracking_setting),
10605
- ("page[cursor]", page_cursor),
10606
- ("page[size]", page_size),
10607
- ]
9743
+ for k, v in [("fields[tracking-setting]", fields_tracking_setting), ("page[cursor]", page_cursor), ("page[size]", page_size)]
10608
9744
  if v is not None
10609
9745
  }
10610
9746
  response = self._get(url, params=query_params)
10611
9747
  response.raise_for_status()
10612
9748
  return response.json()
10613
9749
 
10614
- def get_tracking_setting(self, id, fields_tracking_setting=None) -> dict[str, Any]:
9750
+ async def get_tracking_setting(self, id, fields_tracking_setting=None) -> dict[str, Any]:
10615
9751
  """
10616
9752
  Retrieves tracking settings by ID with optional field selection and revision header support.
10617
9753
 
@@ -10628,16 +9764,12 @@ class KlaviyoApp(APIApplication):
10628
9764
  if id is None:
10629
9765
  raise ValueError("Missing required parameter 'id'")
10630
9766
  url = f"{self.base_url}/api/tracking-settings/{id}"
10631
- query_params = {
10632
- k: v
10633
- for k, v in [("fields[tracking-setting]", fields_tracking_setting)]
10634
- if v is not None
10635
- }
9767
+ query_params = {k: v for k, v in [("fields[tracking-setting]", fields_tracking_setting)] if v is not None}
10636
9768
  response = self._get(url, params=query_params)
10637
9769
  response.raise_for_status()
10638
9770
  return response.json()
10639
9771
 
10640
- def update_tracking_setting(self, id, data=None) -> dict[str, Any]:
9772
+ async def update_tracking_setting(self, id, data=None) -> dict[str, Any]:
10641
9773
  """
10642
9774
  PATCH /api/tracking-settings/{id} partially updates a specific tracking setting by ID, requiring a revision in the header, and may return a successful response or error codes based on input validity and server status.
10643
9775
 
@@ -10739,9 +9871,7 @@ class KlaviyoApp(APIApplication):
10739
9871
  """
10740
9872
  if id is None:
10741
9873
  raise ValueError("Missing required parameter 'id'")
10742
- request_body = {
10743
- "data": data,
10744
- }
9874
+ request_body = {"data": data}
10745
9875
  request_body = {k: v for k, v in request_body.items() if v is not None}
10746
9876
  url = f"{self.base_url}/api/tracking-settings/{id}"
10747
9877
  query_params = {}
@@ -10749,7 +9879,7 @@ class KlaviyoApp(APIApplication):
10749
9879
  response.raise_for_status()
10750
9880
  return response.json()
10751
9881
 
10752
- def get_webhooks(self, fields_webhook=None, include=None) -> dict[str, Any]:
9882
+ async def get_webhooks(self, fields_webhook=None, include=None) -> dict[str, Any]:
10753
9883
  """
10754
9884
  Retrieves webhooks with optional field selection, included resources, and revision headers.
10755
9885
 
@@ -10764,16 +9894,12 @@ class KlaviyoApp(APIApplication):
10764
9894
  Webhooks
10765
9895
  """
10766
9896
  url = f"{self.base_url}/api/webhooks"
10767
- query_params = {
10768
- k: v
10769
- for k, v in [("fields[webhook]", fields_webhook), ("include", include)]
10770
- if v is not None
10771
- }
9897
+ query_params = {k: v for k, v in [("fields[webhook]", fields_webhook), ("include", include)] if v is not None}
10772
9898
  response = self._get(url, params=query_params)
10773
9899
  response.raise_for_status()
10774
9900
  return response.json()
10775
9901
 
10776
- def create_webhook(self, data=None) -> dict[str, Any]:
9902
+ async def create_webhook(self, data=None) -> dict[str, Any]:
10777
9903
  """
10778
9904
  The "/api/webhooks" endpoint supports the "POST" method to create a new webhook, requiring a revision header, and returns a successful creation response with a 201 status code, or error responses for bad requests (400) or internal server errors (500).
10779
9905
 
@@ -10814,9 +9940,7 @@ class KlaviyoApp(APIApplication):
10814
9940
  Tags:
10815
9941
  Webhooks
10816
9942
  """
10817
- request_body = {
10818
- "data": data,
10819
- }
9943
+ request_body = {"data": data}
10820
9944
  request_body = {k: v for k, v in request_body.items() if v is not None}
10821
9945
  url = f"{self.base_url}/api/webhooks"
10822
9946
  query_params = {}
@@ -10824,7 +9948,7 @@ class KlaviyoApp(APIApplication):
10824
9948
  response.raise_for_status()
10825
9949
  return response.json()
10826
9950
 
10827
- def get_webhook(self, id, fields_webhook=None, include=None) -> dict[str, Any]:
9951
+ async def get_webhook(self, id, fields_webhook=None, include=None) -> dict[str, Any]:
10828
9952
  """
10829
9953
  Retrieves a webhook by its ID using a GET request, allowing optional filtering by specifying fields and includes, with support for revision tracking via a header.
10830
9954
 
@@ -10842,16 +9966,12 @@ class KlaviyoApp(APIApplication):
10842
9966
  if id is None:
10843
9967
  raise ValueError("Missing required parameter 'id'")
10844
9968
  url = f"{self.base_url}/api/webhooks/{id}"
10845
- query_params = {
10846
- k: v
10847
- for k, v in [("fields[webhook]", fields_webhook), ("include", include)]
10848
- if v is not None
10849
- }
9969
+ query_params = {k: v for k, v in [("fields[webhook]", fields_webhook), ("include", include)] if v is not None}
10850
9970
  response = self._get(url, params=query_params)
10851
9971
  response.raise_for_status()
10852
9972
  return response.json()
10853
9973
 
10854
- def delete_webhook(self, id) -> Any:
9974
+ async def delete_webhook(self, id) -> Any:
10855
9975
  """
10856
9976
  Deletes a webhook resource identified by its ID, returning a 204 No Content response upon successful deletion, with optional revision information provided in the headers, and error responses for invalid requests or server errors.
10857
9977
 
@@ -10872,7 +9992,7 @@ class KlaviyoApp(APIApplication):
10872
9992
  response.raise_for_status()
10873
9993
  return response.json()
10874
9994
 
10875
- def update_webhook(self, id, data=None) -> dict[str, Any]:
9995
+ async def update_webhook(self, id, data=None) -> dict[str, Any]:
10876
9996
  """
10877
9997
  Updates the webhook resource identified by {id} using partial modifications, requiring a revision header and returning appropriate status codes for success (200), client errors (400), or server errors (500).
10878
9998
 
@@ -10918,9 +10038,7 @@ class KlaviyoApp(APIApplication):
10918
10038
  """
10919
10039
  if id is None:
10920
10040
  raise ValueError("Missing required parameter 'id'")
10921
- request_body = {
10922
- "data": data,
10923
- }
10041
+ request_body = {"data": data}
10924
10042
  request_body = {k: v for k, v in request_body.items() if v is not None}
10925
10043
  url = f"{self.base_url}/api/webhooks/{id}"
10926
10044
  query_params = {}
@@ -10928,7 +10046,7 @@ class KlaviyoApp(APIApplication):
10928
10046
  response.raise_for_status()
10929
10047
  return response.json()
10930
10048
 
10931
- def get_webhook_topics(self) -> dict[str, Any]:
10049
+ async def get_webhook_topics(self) -> dict[str, Any]:
10932
10050
  """
10933
10051
  Retrieves webhook topics with an optional revision header parameter, returning 200, 400, or 500 status codes.
10934
10052
 
@@ -10944,7 +10062,7 @@ class KlaviyoApp(APIApplication):
10944
10062
  response.raise_for_status()
10945
10063
  return response.json()
10946
10064
 
10947
- def get_webhook_topic(self, id) -> dict[str, Any]:
10065
+ async def get_webhook_topic(self, id) -> dict[str, Any]:
10948
10066
  """
10949
10067
  Retrieves a webhook topic by its ID using the GET method, supporting revision information via a header parameter, and returns responses for successful retrieval (200), bad requests (400), and internal server errors (500).
10950
10068