@blezgo/api-sdk 0.1.2 → 0.1.3

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 (137) hide show
  1. package/dist/account/generated.d.ts +193 -193
  2. package/dist/account/generated.d.ts.map +1 -1
  3. package/dist/activity/generated.d.ts +64 -64
  4. package/dist/activity/generated.d.ts.map +1 -1
  5. package/dist/addon/generated.d.ts +96 -96
  6. package/dist/addon/generated.d.ts.map +1 -1
  7. package/dist/admin/generated.d.ts +120 -120
  8. package/dist/admin/generated.d.ts.map +1 -1
  9. package/dist/affiliate/generated.d.ts +84 -85
  10. package/dist/affiliate/generated.d.ts.map +1 -1
  11. package/dist/analytics/generated.d.ts +15 -15
  12. package/dist/analytics/generated.d.ts.map +1 -1
  13. package/dist/announcements/generated.d.ts +100 -100
  14. package/dist/announcements/generated.d.ts.map +1 -1
  15. package/dist/apikeys/generated.d.ts +100 -100
  16. package/dist/apikeys/generated.d.ts.map +1 -1
  17. package/dist/assistance/generated.d.ts +12 -12
  18. package/dist/assistance/generated.d.ts.map +1 -1
  19. package/dist/authentication/generated.d.ts +95 -95
  20. package/dist/authentication/generated.d.ts.map +1 -1
  21. package/dist/blog/generated.d.ts +169 -169
  22. package/dist/blog/generated.d.ts.map +1 -1
  23. package/dist/bundle/generated.d.ts +168 -168
  24. package/dist/bundle/generated.d.ts.map +1 -1
  25. package/dist/cache/generated.d.ts +38 -38
  26. package/dist/cache/generated.d.ts.map +1 -1
  27. package/dist/calendar/generated.d.ts +38 -38
  28. package/dist/calendar/generated.d.ts.map +1 -1
  29. package/dist/campaigns/generated.d.ts +196 -196
  30. package/dist/campaigns/generated.d.ts.map +1 -1
  31. package/dist/cart/generated.d.ts +9 -9
  32. package/dist/cart/generated.d.ts.map +1 -1
  33. package/dist/changelog/generated.d.ts +88 -88
  34. package/dist/changelog/generated.d.ts.map +1 -1
  35. package/dist/channel/generated.d.ts +252 -252
  36. package/dist/channel/generated.d.ts.map +1 -1
  37. package/dist/company/generated.d.ts +58 -58
  38. package/dist/company/generated.d.ts.map +1 -1
  39. package/dist/conference/generated.d.ts +30 -30
  40. package/dist/conference/generated.d.ts.map +1 -1
  41. package/dist/config/generated.d.ts +25 -25
  42. package/dist/config/generated.d.ts.map +1 -1
  43. package/dist/content/generated.d.ts +658 -658
  44. package/dist/content/generated.d.ts.map +1 -1
  45. package/dist/cookies/generated.d.ts +46 -46
  46. package/dist/cookies/generated.d.ts.map +1 -1
  47. package/dist/courses/generated.d.ts +250 -250
  48. package/dist/courses/generated.d.ts.map +1 -1
  49. package/dist/custom/generated.d.ts +70 -70
  50. package/dist/custom/generated.d.ts.map +1 -1
  51. package/dist/dashboard/generated.d.ts +202 -202
  52. package/dist/dashboard/generated.d.ts.map +1 -1
  53. package/dist/elasticsearch/generated.d.ts +25 -25
  54. package/dist/elasticsearch/generated.d.ts.map +1 -1
  55. package/dist/enrollments/generated.d.ts +9 -9
  56. package/dist/enrollments/generated.d.ts.map +1 -1
  57. package/dist/errors/generated.d.ts +30 -30
  58. package/dist/errors/generated.d.ts.map +1 -1
  59. package/dist/eventconfig/generated.d.ts +103 -103
  60. package/dist/eventconfig/generated.d.ts.map +1 -1
  61. package/dist/funnels/generated.d.ts +94 -95
  62. package/dist/funnels/generated.d.ts.map +1 -1
  63. package/dist/gamification/generated.d.ts +103 -103
  64. package/dist/gamification/generated.d.ts.map +1 -1
  65. package/dist/impersonation/generated.d.ts +77 -77
  66. package/dist/impersonation/generated.d.ts.map +1 -1
  67. package/dist/inbox/generated.d.ts +99 -99
  68. package/dist/inbox/generated.d.ts.map +1 -1
  69. package/dist/internal/generated.d.ts +9 -9
  70. package/dist/internal/generated.d.ts.map +1 -1
  71. package/dist/internationalization/generated.d.ts +11 -11
  72. package/dist/internationalization/generated.d.ts.map +1 -1
  73. package/dist/invitations/generated.d.ts +131 -131
  74. package/dist/invitations/generated.d.ts.map +1 -1
  75. package/dist/meetings/generated.d.ts +251 -251
  76. package/dist/meetings/generated.d.ts.map +1 -1
  77. package/dist/metas/generated.d.ts +183 -183
  78. package/dist/metas/generated.d.ts.map +1 -1
  79. package/dist/notification/generated.d.ts +379 -379
  80. package/dist/notification/generated.d.ts.map +1 -1
  81. package/dist/notifications/generated.d.ts +9 -9
  82. package/dist/notifications/generated.d.ts.map +1 -1
  83. package/dist/onboarding/generated.d.ts +124 -124
  84. package/dist/onboarding/generated.d.ts.map +1 -1
  85. package/dist/packages/generated.d.ts +59 -59
  86. package/dist/packages/generated.d.ts.map +1 -1
  87. package/dist/payments/generated.d.ts +555 -558
  88. package/dist/payments/generated.d.ts.map +1 -1
  89. package/dist/payouts/generated.d.ts +9 -9
  90. package/dist/payouts/generated.d.ts.map +1 -1
  91. package/dist/plans/generated.d.ts +227 -227
  92. package/dist/plans/generated.d.ts.map +1 -1
  93. package/dist/pricing/generated.d.ts +34 -34
  94. package/dist/pricing/generated.d.ts.map +1 -1
  95. package/dist/products/generated.d.ts +610 -610
  96. package/dist/products/generated.d.ts.map +1 -1
  97. package/dist/profile/generated.d.ts +286 -286
  98. package/dist/profile/generated.d.ts.map +1 -1
  99. package/dist/reasons/generated.d.ts +32 -32
  100. package/dist/reasons/generated.d.ts.map +1 -1
  101. package/dist/registration/generated.d.ts +164 -164
  102. package/dist/registration/generated.d.ts.map +1 -1
  103. package/dist/reviews/generated.d.ts +51 -51
  104. package/dist/reviews/generated.d.ts.map +1 -1
  105. package/dist/role/generated.d.ts +899 -401
  106. package/dist/role/generated.d.ts.map +1 -1
  107. package/dist/scheduling/generated.d.ts +156 -156
  108. package/dist/scheduling/generated.d.ts.map +1 -1
  109. package/dist/services/generated.d.ts +1028 -1028
  110. package/dist/services/generated.d.ts.map +1 -1
  111. package/dist/sessions/generated.d.ts +247 -247
  112. package/dist/sessions/generated.d.ts.map +1 -1
  113. package/dist/spaces/generated.d.ts +419 -419
  114. package/dist/spaces/generated.d.ts.map +1 -1
  115. package/dist/storefront/generated.d.ts +9 -9
  116. package/dist/storefront/generated.d.ts.map +1 -1
  117. package/dist/support/generated.d.ts +1510 -1510
  118. package/dist/support/generated.d.ts.map +1 -1
  119. package/dist/sync/generated.d.ts +179 -179
  120. package/dist/sync/generated.d.ts.map +1 -1
  121. package/dist/tenant/generated.d.ts +537 -537
  122. package/dist/tenant/generated.d.ts.map +1 -1
  123. package/dist/testimonials/generated.d.ts +79 -79
  124. package/dist/testimonials/generated.d.ts.map +1 -1
  125. package/dist/tests/generated.d.ts +343 -343
  126. package/dist/tests/generated.d.ts.map +1 -1
  127. package/dist/tokens/generated.d.ts +37 -37
  128. package/dist/tokens/generated.d.ts.map +1 -1
  129. package/dist/uploads/generated.d.ts +33 -33
  130. package/dist/uploads/generated.d.ts.map +1 -1
  131. package/dist/upsell/generated.d.ts +82 -82
  132. package/dist/upsell/generated.d.ts.map +1 -1
  133. package/dist/user/generated.d.ts +280 -541
  134. package/dist/user/generated.d.ts.map +1 -1
  135. package/dist/webinars/generated.d.ts +183 -183
  136. package/dist/webinars/generated.d.ts.map +1 -1
  137. package/package.json +1 -1
@@ -1217,276 +1217,169 @@ export type webhooks = Record<string, never>;
1217
1217
  export interface components {
1218
1218
  schemas: {
1219
1219
  /**
1220
- * VariantUpdateRequest
1221
- * @description Request model for updating a variant.
1222
- */
1223
- VariantUpdateRequest: {
1224
- /** Name */
1225
- name?: string | null;
1226
- /** Sku */
1227
- sku?: string | null;
1228
- /** Barcode */
1229
- barcode?: string | null;
1230
- /** Attributes */
1231
- attributes?: {
1232
- [key: string]: unknown;
1233
- } | null;
1234
- /** Is Default */
1235
- is_default?: boolean | null;
1236
- status?: components["schemas"]["VariantStatus"] | null;
1237
- /** Display Order */
1238
- display_order?: number | null;
1239
- /** Metadata */
1240
- metadata?: {
1241
- [key: string]: unknown;
1242
- } | null;
1243
- /** Track Inventory */
1244
- track_inventory?: boolean | null;
1245
- /** Stock Quantity */
1246
- stock_quantity?: number | null;
1247
- /** Allow Backorder */
1248
- allow_backorder?: boolean | null;
1249
- /** Weight */
1250
- weight?: number | string | null;
1251
- /** Length */
1252
- length?: number | string | null;
1253
- /** Width */
1254
- width?: number | string | null;
1255
- /** Height */
1256
- height?: number | string | null;
1257
- };
1258
- ErrorResponse: {
1259
- /** @example about:blank */
1260
- type?: string;
1261
- /** @example GENERIC_ERROR */
1262
- code?: string;
1263
- /** @example Client Error */
1264
- title?: string;
1265
- /** @example 400 */
1266
- status?: number;
1267
- /** @example An error occurred */
1268
- detail?: string;
1269
- /** @example /v1/cart/items */
1270
- instance?: string;
1271
- extensions?: components["schemas"]["Extensions"];
1272
- };
1273
- /**
1274
- * VariantStatus
1275
- * @description Variant status enum.
1276
- * @enum {string}
1277
- */
1278
- VariantStatus: "active" | "inactive" | "out_of_stock" | "discontinued";
1279
- /**
1280
- * SeoUpsertRequest
1281
- * @description Unified SEO upsert schema for all entity types (space, product, service, ...).
1282
- *
1283
- * Locale is NOT in this body — it comes from the URL path:
1284
- * PUT /v1/spaces/admin/{space_id}/seo/{locale}
1285
- * PUT /v1/products/{product_id}/seo/{locale}
1286
- *
1287
- * All fields are optional; supply only what you want to set.
1288
- * Fields absent from the request body are stored as NULL (PUT semantics — full replace).
1289
- *
1290
- * extra='forbid' inherited from BaseSeoFields — unknown keys are rejected.
1291
- * All validators (robots, URL, og_locale, twitter handle, alternate_languages)
1292
- * are also inherited from BaseSeoFields.
1293
- * @example {
1294
- * "alternate_languages": [
1295
- * {
1296
- * "lang": "en-US",
1297
- * "url": "https://www.example.com/courses/python"
1298
- * },
1299
- * {
1300
- * "lang": "es-PR",
1301
- * "url": "https://www.example.com/es/cursos/python"
1302
- * },
1303
- * {
1304
- * "lang": "fr-FR",
1305
- * "url": "https://www.example.com/fr/cours/python"
1306
- * },
1307
- * {
1308
- * "lang": "x-default",
1309
- * "url": "https://www.example.com/courses/python"
1310
- * }
1311
- * ],
1312
- * "canonical_url": "https://www.example.com/courses/python",
1313
- * "is_indexable": true,
1314
- * "meta_description": "Explore our full library of Python courses. Beginner to advanced, taught by industry experts.",
1315
- * "meta_keywords": "python, programming, learn python, python course, coding",
1316
- * "meta_title": "Browse Python Courses — Learn at Any Level",
1317
- * "og_description": "From beginner to advanced. Join 50,000+ learners on MyPlatform.",
1318
- * "og_image": "https://cdn.example.com/og/python-courses.jpg",
1319
- * "og_image_alt": "A student learning Python on a laptop in a modern workspace",
1320
- * "og_image_height": 630,
1321
- * "og_image_width": 1200,
1322
- * "og_locale": "en_US",
1323
- * "og_site_name": "MyPlatform",
1324
- * "og_title": "Python Courses — Learn at Your Own Pace",
1325
- * "og_type": "website",
1326
- * "og_url": "https://www.example.com/courses/python",
1327
- * "robots": "index,follow,max-snippet:-1,max-image-preview:large,max-video-preview:30",
1328
- * "structured_data": {
1329
- * "@context": "https://schema.org",
1330
- * "@type": "ItemList",
1331
- * "description": "Browse all Python courses on MyPlatform",
1332
- * "itemListElement": [
1333
- * {
1334
- * "@type": "ListItem",
1335
- * "name": "Python for Beginners",
1336
- * "position": 1,
1337
- * "url": "https://www.example.com/courses/python-beginners"
1338
- * },
1339
- * {
1340
- * "@type": "ListItem",
1341
- * "name": "Advanced Python",
1342
- * "position": 2,
1343
- * "url": "https://www.example.com/courses/python-advanced"
1344
- * }
1345
- * ],
1346
- * "name": "Python Courses",
1347
- * "numberOfItems": 42,
1348
- * "url": "https://www.example.com/courses/python"
1349
- * },
1350
- * "twitter_card": "summary_large_image",
1351
- * "twitter_creator": "@myplatform",
1352
- * "twitter_description": "From beginner to advanced. Join 50,000+ learners.",
1353
- * "twitter_image": "https://cdn.example.com/twitter/python-courses.jpg",
1354
- * "twitter_image_alt": "A student learning Python on a laptop",
1355
- * "twitter_site": "@myplatform",
1356
- * "twitter_title": "Python Courses on MyPlatform"
1357
- * }
1220
+ * ProductIdentityCreateRequest
1221
+ * @description Create localized product content
1358
1222
  */
1359
- SeoUpsertRequest: {
1360
- /**
1361
- * Og Title
1362
- * @description og:title — headline shown in social link previews. Defaults to the entity title if omitted. Keep ≤95 chars.
1363
- */
1364
- og_title?: string | null;
1365
- /**
1366
- * Og Description
1367
- * @description og:description — subtitle shown in social link previews.
1368
- */
1369
- og_description?: string | null;
1370
- /**
1371
- * Og Image
1372
- * @description og:image — full URL (http/https) of the preview image. Recommended size: 1200×630 px.
1373
- */
1374
- og_image?: string | null;
1375
- /**
1376
- * Og Type
1377
- * @description og:type — content type for social platforms. Values: 'website' | 'article' | 'product' | 'video.other' | 'music.song' | 'profile' | 'book'.
1378
- */
1379
- og_type?: ("website" | "article" | "product" | "video.other" | "music.song" | "profile" | "book") | null;
1380
- /**
1381
- * Twitter Card
1382
- * @description twitter:card — card layout on Twitter/X. Values: 'summary' | 'summary_large_image' | 'app' | 'player'.
1383
- */
1384
- twitter_card?: ("summary" | "summary_large_image" | "app" | "player") | null;
1385
- /**
1386
- * Twitter Title
1387
- * @description twitter:title — overrides og_title for Twitter/X. Keep ≤70 chars.
1388
- */
1389
- twitter_title?: string | null;
1390
- /**
1391
- * Twitter Description
1392
- * @description twitter:description — overrides og_description for Twitter/X.
1393
- */
1394
- twitter_description?: string | null;
1395
- /**
1396
- * Twitter Image
1397
- * @description twitter:image — full URL (http/https). Overrides og_image for Twitter/X. Min 144×144 px, max 4096×4096 px.
1398
- */
1399
- twitter_image?: string | null;
1400
- /**
1401
- * Canonical Url
1402
- * @description <link rel='canonical'>. Full URL (http/https). Set when this page has duplicate content at another URL.
1403
- */
1404
- canonical_url?: string | null;
1405
- /**
1406
- * Robots
1407
- * @description <meta name='robots'>. Comma-separated directives. Simple: index, noindex, follow, nofollow, noarchive, nosnippet, noimageindex, none, all, notranslate, noodp. Parametric: max-snippet:-1, max-snippet:150, max-image-preview:none|standard|large, max-video-preview:-1, max-video-preview:30, unavailable_after:<date>. Examples: 'index,follow' | 'noindex,nofollow' | 'index,follow,max-snippet:-1,max-image-preview:large'.
1408
- */
1409
- robots?: string | null;
1223
+ ProductIdentityCreateRequest: {
1410
1224
  /**
1411
- * Meta Title
1412
- * @description <title> and <meta name='title'>. Keep ≤60 chars for Google display.
1225
+ * @description Locale (language-country format)
1226
+ * @example en-US
1413
1227
  */
1414
- meta_title?: string | null;
1228
+ locale: components["schemas"]["Locale"];
1415
1229
  /**
1416
- * Meta Description
1417
- * @description <meta name='description'>. Keep ≤160 chars for Google display.
1230
+ * Title
1231
+ * @example Python Programming Course
1418
1232
  */
1419
- meta_description?: string | null;
1233
+ title: string;
1420
1234
  /**
1421
- * Meta Keywords
1422
- * @description Comma-separated keywords. Low weight for Google, used for internal search.
1235
+ * Subtitle
1236
+ * @example Master Python in 30 days
1423
1237
  */
1424
- meta_keywords?: string | null;
1238
+ subtitle?: string | null;
1425
1239
  /**
1426
- * Og Image Width
1427
- * @description og:image:width in pixels. Recommended: 1200.
1240
+ * Description
1241
+ * @example Comprehensive Python course covering basics to advanced topics
1428
1242
  */
1429
- og_image_width?: number | null;
1243
+ description?: string | null;
1430
1244
  /**
1431
- * Og Image Height
1432
- * @description og:image:height in pixels. Recommended: 630.
1245
+ * Short Description
1246
+ * @example Learn Python from scratch with hands-on projects
1433
1247
  */
1434
- og_image_height?: number | null;
1248
+ short_description?: string | null;
1249
+ };
1250
+ /**
1251
+ * Locale
1252
+ * @description Supported locales (language-country format)
1253
+ * @enum {string}
1254
+ */
1255
+ Locale: "en-US" | "es-PR" | "es-ES" | "fr-FR" | "pt-BR" | "de-DE" | "it-IT" | "ja-JP" | "zh-CN";
1256
+ /**
1257
+ * AddTagToProductRequest
1258
+ * @example {
1259
+ * "display_order": 0,
1260
+ * "tag_id": 5
1261
+ * }
1262
+ */
1263
+ AddTagToProductRequest: {
1435
1264
  /**
1436
- * Og Image Alt
1437
- * @description og:image:alt — alt text for the OG image.
1265
+ * Tag Id
1266
+ * @example 5
1438
1267
  */
1439
- og_image_alt?: string | null;
1268
+ tag_id: number;
1440
1269
  /**
1441
- * Og Url
1442
- * @description og:url — canonical URL used by social platforms.
1270
+ * Display Order
1271
+ * @default 0
1272
+ * @example 0
1443
1273
  */
1444
- og_url?: string | null;
1274
+ display_order: number;
1275
+ };
1276
+ /**
1277
+ * ProductCurrency
1278
+ * @enum {string}
1279
+ */
1280
+ ProductCurrency: "USD" | "INR" | "EUR" | "GBP";
1281
+ /**
1282
+ * VariantStatus
1283
+ * @description Variant status enum.
1284
+ * @enum {string}
1285
+ */
1286
+ VariantStatus: "active" | "inactive" | "out_of_stock" | "discontinued";
1287
+ /**
1288
+ * ProductStatus
1289
+ * @description Product status values (Phase 1 - VARCHAR)
1290
+ * @enum {string}
1291
+ */
1292
+ ProductStatus: "draft" | "published" | "archived" | "review_required" | "deleted";
1293
+ /**
1294
+ * AddBundleItemRequest
1295
+ * @example {
1296
+ * "discount_percentage": 10,
1297
+ * "display_order": 0,
1298
+ * "is_required": true,
1299
+ * "is_visible": true,
1300
+ * "item_product_id": 456,
1301
+ * "quantity": 1
1302
+ * }
1303
+ */
1304
+ AddBundleItemRequest: {
1445
1305
  /**
1446
- * Og Site Name
1447
- * @description og:site_name — your platform name shown in the link preview card.
1306
+ * Item Product Id
1307
+ * @example 456
1448
1308
  */
1449
- og_site_name?: string | null;
1309
+ item_product_id: number;
1450
1310
  /**
1451
- * Og Locale
1452
- * @description og:locale — language in underscore format: en_US, es_ES, fr_FR.
1311
+ * Quantity
1312
+ * @default 1
1313
+ * @example 1
1453
1314
  */
1454
- og_locale?: string | null;
1315
+ quantity: number;
1455
1316
  /**
1456
- * Twitter Image Alt
1457
- * @description twitter:image:alt alt text for the Twitter card image.
1317
+ * Discount Percentage
1318
+ * @description Discount % (0-100)
1319
+ * @example 10
1458
1320
  */
1459
- twitter_image_alt?: string | null;
1321
+ discount_percentage?: number | null;
1460
1322
  /**
1461
- * Twitter Site
1462
- * @description twitter:site your Twitter/X account handle. Must start with '@'.
1323
+ * Override Price
1324
+ * @description Override price for this item
1325
+ * @example 49.99
1463
1326
  */
1464
- twitter_site?: string | null;
1327
+ override_price?: number | null;
1465
1328
  /**
1466
- * Twitter Creator
1467
- * @description twitter:creator — author's Twitter/X handle. Must start with '@'.
1329
+ * Is Required
1330
+ * @default true
1331
+ * @example true
1468
1332
  */
1469
- twitter_creator?: string | null;
1333
+ is_required: boolean;
1470
1334
  /**
1471
- * Is Indexable
1472
- * @description System-level indexing override. False → page is treated as noindex regardless of the robots field. True → robots field is authoritative.
1335
+ * Is Visible
1473
1336
  * @default true
1337
+ * @example true
1474
1338
  */
1475
- is_indexable: boolean;
1339
+ is_visible: boolean;
1476
1340
  /**
1477
- * Structured Data
1478
- * @description Schema.org JSON-LD object for Google rich results.
1341
+ * Display Order
1342
+ * @default 0
1343
+ * @example 0
1479
1344
  */
1480
- structured_data?: {
1481
- [key: string]: unknown;
1482
- } | null;
1345
+ display_order: number;
1346
+ };
1347
+ /**
1348
+ * ProductInterval
1349
+ * @enum {string}
1350
+ */
1351
+ ProductInterval: "day" | "week" | "month" | "year";
1352
+ /** Body_createProductImageUpload */
1353
+ Body_createProductImageUpload: {
1483
1354
  /**
1484
- * Alternate Languages
1485
- * @description hreflang list: [{"lang":"en-US","url":"https://..."},{"lang":"x-default","url":"..."}]. Always include x-default.
1355
+ * Image File
1356
+ * Format: binary
1486
1357
  */
1487
- alternate_languages?: {
1488
- [key: string]: string;
1489
- }[] | null;
1358
+ image_file: string;
1359
+ };
1360
+ Extensions: {
1361
+ /** @example GENERIC_ERROR */
1362
+ message_code?: string;
1363
+ /** @example [] */
1364
+ invalid_params?: components["schemas"]["InvalidParam"][];
1365
+ extra_data?: Record<string, never> | null;
1366
+ /** @example Detailed debug information */
1367
+ debug?: string | null;
1368
+ };
1369
+ ErrorResponse: {
1370
+ /** @example about:blank */
1371
+ type?: string;
1372
+ /** @example GENERIC_ERROR */
1373
+ code?: string;
1374
+ /** @example Client Error */
1375
+ title?: string;
1376
+ /** @example 400 */
1377
+ status?: number;
1378
+ /** @example An error occurred */
1379
+ detail?: string;
1380
+ /** @example /v1/cart/items */
1381
+ instance?: string;
1382
+ extensions?: components["schemas"]["Extensions"];
1490
1383
  };
1491
1384
  /**
1492
1385
  * ProductUpdateRequest
@@ -1528,65 +1421,111 @@ export interface components {
1528
1421
  */
1529
1422
  description?: string | null;
1530
1423
  };
1531
- Extensions: {
1532
- /** @example GENERIC_ERROR */
1533
- message_code?: string;
1534
- /** @example [] */
1535
- invalid_params?: components["schemas"]["InvalidParam"][];
1536
- extra_data?: Record<string, never> | null;
1537
- /** @example Detailed debug information */
1538
- debug?: string | null;
1539
- };
1540
- InvalidParam: {
1541
- /** @example items[0].quantity */
1542
- field?: string;
1543
- /** @example Input should be greater than or equal to 1 */
1544
- error?: string;
1545
- };
1546
- /** Body_createProductImageUpload */
1547
- Body_createProductImageUpload: {
1424
+ /**
1425
+ * VariantInventoryInput
1426
+ * @description Inventory data for variant creation.
1427
+ */
1428
+ VariantInventoryInput: {
1548
1429
  /**
1549
- * Image File
1550
- * Format: binary
1430
+ * Track Inventory
1431
+ * @description Track stock for this variant
1432
+ * @default true
1551
1433
  */
1552
- image_file: string;
1434
+ track_inventory: boolean;
1435
+ /**
1436
+ * Stock Quantity
1437
+ * @description Initial stock quantity
1438
+ */
1439
+ stock_quantity?: number | null;
1440
+ /**
1441
+ * Allow Backorder
1442
+ * @description Allow orders when out of stock
1443
+ * @default false
1444
+ */
1445
+ allow_backorder: boolean;
1446
+ };
1447
+ /**
1448
+ * VariantUpdateRequest
1449
+ * @description Request model for updating a variant.
1450
+ */
1451
+ VariantUpdateRequest: {
1452
+ /** Name */
1453
+ name?: string | null;
1454
+ /** Sku */
1455
+ sku?: string | null;
1456
+ /** Barcode */
1457
+ barcode?: string | null;
1458
+ /** Attributes */
1459
+ attributes?: {
1460
+ [key: string]: unknown;
1461
+ } | null;
1462
+ /** Is Default */
1463
+ is_default?: boolean | null;
1464
+ status?: components["schemas"]["VariantStatus"] | null;
1465
+ /** Display Order */
1466
+ display_order?: number | null;
1467
+ /** Metadata */
1468
+ metadata?: {
1469
+ [key: string]: unknown;
1470
+ } | null;
1471
+ /** Track Inventory */
1472
+ track_inventory?: boolean | null;
1473
+ /** Stock Quantity */
1474
+ stock_quantity?: number | null;
1475
+ /** Allow Backorder */
1476
+ allow_backorder?: boolean | null;
1477
+ /** Weight */
1478
+ weight?: number | string | null;
1479
+ /** Length */
1480
+ length?: number | string | null;
1481
+ /** Width */
1482
+ width?: number | string | null;
1483
+ /** Height */
1484
+ height?: number | string | null;
1553
1485
  };
1554
1486
  /**
1555
- * ProductType
1556
- * @description Product types supported (11 active types)
1557
- * @enum {string}
1558
- */
1559
- ProductType: "course" | "package" | "session" | "webinar" | "bundle" | "meeting" | "open_class" | "plan" | "test" | "appointment" | "limit_minutes";
1560
- /**
1561
- * ProductCurrency
1562
- * @enum {string}
1563
- */
1564
- ProductCurrency: "USD" | "INR" | "EUR" | "GBP";
1565
- /**
1566
- * ProductInterval
1567
- * @enum {string}
1568
- */
1569
- ProductInterval: "day" | "week" | "month" | "year";
1570
- /**
1571
- * InventoryAdjustmentRequest
1572
- * @description Request model for inventory adjustment.
1487
+ * @example {
1488
+ * "status": "success",
1489
+ * "message": "Operation successful",
1490
+ * "message_code": "api_suc_20001",
1491
+ * "data": {},
1492
+ * "metadata": {
1493
+ * "timestamp": "2026-03-26T10:00:00.000Z",
1494
+ * "requestId": "07e22004-cb60-4dfc-bc9c-b6f99664dca1",
1495
+ * "traceId": "a9f1204c-bb82-41de-b234-7c3a9e120000",
1496
+ * "version": "v1",
1497
+ * "executionTime": 42,
1498
+ * "language": "en-US"
1499
+ * }
1500
+ * }
1573
1501
  */
1574
- InventoryAdjustmentRequest: {
1575
- /**
1576
- * Adjustment Type
1577
- * @description add, subtract, or set
1578
- */
1579
- adjustment_type: string;
1580
- /**
1581
- * Quantity
1582
- * @description Quantity to add/subtract/set
1583
- */
1584
- quantity: number;
1585
- /**
1586
- * Reason
1587
- * @description Reason for adjustment
1588
- */
1589
- reason?: string | null;
1502
+ StandardResponse: {
1503
+ /** @example success */
1504
+ status?: string;
1505
+ data?: Record<string, never> | null;
1506
+ /** @example Operation successful */
1507
+ message?: string | null;
1508
+ /** @example api_suc_20001 */
1509
+ message_code?: string | null;
1510
+ metadata?: Record<string, never> | null;
1511
+ error?: components["schemas"]["ErrorResponse"];
1512
+ };
1513
+ /** ProductPriceUpdateRequest */
1514
+ ProductPriceUpdateRequest: {
1515
+ /** Amount */
1516
+ amount?: number | null;
1517
+ currency?: components["schemas"]["ProductCurrency"] | null;
1518
+ interval?: components["schemas"]["ProductInterval"] | null;
1519
+ /** Interval Count */
1520
+ interval_count?: number | null;
1521
+ /** Trial Period Days */
1522
+ trial_period_days?: number | null;
1523
+ /** Initial Amount */
1524
+ initial_amount?: number | null;
1525
+ /** Compare Price */
1526
+ compare_price?: number | null;
1527
+ /** Is Active */
1528
+ is_active?: boolean | null;
1590
1529
  };
1591
1530
  /**
1592
1531
  * VariantCreateRequest
@@ -1669,65 +1608,240 @@ export interface components {
1669
1608
  } | null;
1670
1609
  };
1671
1610
  /**
1672
- * ProductIdentityCreateRequest
1673
- * @description Create localized product content
1611
+ * InventoryAdjustmentRequest
1612
+ * @description Request model for inventory adjustment.
1674
1613
  */
1675
- ProductIdentityCreateRequest: {
1614
+ InventoryAdjustmentRequest: {
1615
+ /**
1616
+ * Adjustment Type
1617
+ * @description add, subtract, or set
1618
+ */
1619
+ adjustment_type: string;
1620
+ /**
1621
+ * Quantity
1622
+ * @description Quantity to add/subtract/set
1623
+ */
1624
+ quantity: number;
1625
+ /**
1626
+ * Reason
1627
+ * @description Reason for adjustment
1628
+ */
1629
+ reason?: string | null;
1630
+ };
1631
+ /** ProductPriceRequest */
1632
+ ProductPriceRequest: {
1633
+ /**
1634
+ * Company Id
1635
+ * @description Company ID for gateway configuration
1636
+ * @example 1
1637
+ */
1638
+ company_id: number;
1639
+ /** @example subscription */
1640
+ price_type: components["schemas"]["ProductPriceType"];
1641
+ /**
1642
+ * Amount
1643
+ * @example 52
1644
+ */
1645
+ amount: number;
1646
+ /** @example USD */
1647
+ currency: components["schemas"]["ProductCurrency"];
1648
+ /**
1649
+ * Gateway
1650
+ * @example stripe
1651
+ */
1652
+ gateway?: string | null;
1653
+ /**
1654
+ * Is Live
1655
+ * @default false
1656
+ * @example false
1657
+ */
1658
+ is_live: boolean;
1659
+ /** @example month */
1660
+ interval?: components["schemas"]["ProductInterval"] | null;
1661
+ /**
1662
+ * Interval Count
1663
+ * @example 1
1664
+ */
1665
+ interval_count?: number | null;
1666
+ /**
1667
+ * Trial Period Days
1668
+ * @default 0
1669
+ * @example 0
1670
+ */
1671
+ trial_period_days: number | null;
1672
+ /**
1673
+ * Initial Amount
1674
+ * @example 0
1675
+ */
1676
+ initial_amount?: number | null;
1677
+ /**
1678
+ * Compare Price
1679
+ * @example 0
1680
+ */
1681
+ compare_price?: number | null;
1682
+ /**
1683
+ * Object Id
1684
+ * @example 0
1685
+ */
1686
+ object_id?: number | null;
1687
+ /**
1688
+ * Module Id
1689
+ * @example 0
1690
+ */
1691
+ module_id?: number | null;
1692
+ /**
1693
+ * Requires Payment Method Upfront
1694
+ * @description False=Gateway-managed trial (send trial to gateway), True=App-managed trial (don't send trial to gateway)
1695
+ * @default false
1696
+ * @example false
1697
+ */
1698
+ requires_payment_method_upfront: boolean;
1699
+ };
1700
+ /** Body_createProductImage */
1701
+ Body_createProductImage: {
1702
+ /**
1703
+ * File
1704
+ * Format: binary
1705
+ */
1706
+ file: string;
1707
+ };
1708
+ /**
1709
+ * ProductPriceType
1710
+ * @enum {string}
1711
+ */
1712
+ ProductPriceType: "free" | "subscription" | "onetime" | "emi";
1713
+ InvalidParam: {
1714
+ /** @example items[0].quantity */
1715
+ field?: string;
1716
+ /** @example Input should be greater than or equal to 1 */
1717
+ error?: string;
1718
+ };
1719
+ /**
1720
+ * CreateTagRequest
1721
+ * @example {
1722
+ * "color": "#3776AB",
1723
+ * "description": "Programming language tag for Python courses",
1724
+ * "tag_name": "Python Programming",
1725
+ * "tag_type": "skill"
1726
+ * }
1727
+ */
1728
+ app__routes__products__product_phase2_routes__CreateTagRequest: {
1729
+ /**
1730
+ * Tag Name
1731
+ * @example Python Programming
1732
+ */
1733
+ tag_name: string;
1734
+ /**
1735
+ * Tag Type
1736
+ * @description category, topic, skill, difficulty
1737
+ * @example skill
1738
+ */
1739
+ tag_type?: string | null;
1740
+ /**
1741
+ * Description
1742
+ * @example Programming language tag for Python courses
1743
+ */
1744
+ description?: string | null;
1745
+ /**
1746
+ * Color
1747
+ * @description HEX color code
1748
+ * @example #3776AB
1749
+ */
1750
+ color?: string | null;
1751
+ };
1752
+ /**
1753
+ * VariantImageInput
1754
+ * @description Image data for variant creation.
1755
+ */
1756
+ VariantImageInput: {
1757
+ /**
1758
+ * Image Url
1759
+ * @description Image URL
1760
+ */
1761
+ image_url: string;
1762
+ /**
1763
+ * Image Type
1764
+ * @description primary, gallery, thumbnail
1765
+ * @default primary
1766
+ */
1767
+ image_type: string;
1768
+ /**
1769
+ * Display Order
1770
+ * @description Display order
1771
+ * @default 100
1772
+ */
1773
+ display_order: number;
1774
+ };
1775
+ /**
1776
+ * ProductCreateRequest
1777
+ * @description Create new product (base record only)
1778
+ * Identity (title, description, images) managed separately via ProductIdentity endpoints
1779
+ */
1780
+ ProductCreateRequest: {
1781
+ /**
1782
+ * Company Id
1783
+ * @description Company ID for multi-company orgs
1784
+ * @example 1
1785
+ */
1786
+ company_id?: number | null;
1787
+ /**
1788
+ * @description Product type
1789
+ * @example course
1790
+ */
1791
+ product_type: components["schemas"]["ProductType"];
1676
1792
  /**
1677
- * @description Locale (language-country format)
1678
- * @example en-US
1793
+ * Featured
1794
+ * @description Featured product flag
1795
+ * @default false
1796
+ * @example false
1679
1797
  */
1680
- locale: components["schemas"]["Locale"];
1798
+ featured: boolean;
1681
1799
  /**
1682
- * Title
1683
- * @example Python Programming Course
1800
+ * Is Digital
1801
+ * @description Digital product (default: True)
1802
+ * @default true
1803
+ * @example true
1684
1804
  */
1685
- title: string;
1805
+ is_digital: boolean;
1686
1806
  /**
1687
- * Subtitle
1688
- * @example Master Python in 30 days
1807
+ * Visibility
1808
+ * @description Visibility: public, private, hidden, unlisted
1809
+ * @default public
1810
+ * @example public
1689
1811
  */
1690
- subtitle?: string | null;
1812
+ visibility: string | null;
1691
1813
  /**
1692
- * Description
1693
- * @example Comprehensive Python course covering basics to advanced topics
1814
+ * Is Org Level
1815
+ * @description Organization-level product (True) vs user-created (False)
1816
+ * @default true
1817
+ * @example true
1694
1818
  */
1695
- description?: string | null;
1819
+ is_org_level: boolean | null;
1696
1820
  /**
1697
- * Short Description
1698
- * @example Learn Python from scratch with hands-on projects
1821
+ * Staff Id
1822
+ * @description Staff/instructor who delivers this product
1823
+ * @example 5
1699
1824
  */
1700
- short_description?: string | null;
1701
- };
1702
- /**
1703
- * VariantInventoryInput
1704
- * @description Inventory data for variant creation.
1705
- */
1706
- VariantInventoryInput: {
1825
+ staff_id?: number | null;
1707
1826
  /**
1708
- * Track Inventory
1709
- * @description Track stock for this variant
1710
- * @default true
1827
+ * Owner Id
1828
+ * @description Owner of the product (user who created/owns it)
1829
+ * @example 10
1711
1830
  */
1712
- track_inventory: boolean;
1831
+ owner_id?: number | null;
1713
1832
  /**
1714
- * Stock Quantity
1715
- * @description Initial stock quantity
1833
+ * Title
1834
+ * @description DEPRECATED: Use ProductIdentity instead
1835
+ * @example Python Programming
1716
1836
  */
1717
- stock_quantity?: number | null;
1837
+ title?: string | null;
1718
1838
  /**
1719
- * Allow Backorder
1720
- * @description Allow orders when out of stock
1721
- * @default false
1839
+ * Description
1840
+ * @description DEPRECATED: Use ProductIdentity instead
1841
+ * @example Learn Python from scratch
1722
1842
  */
1723
- allow_backorder: boolean;
1843
+ description?: string | null;
1724
1844
  };
1725
- /**
1726
- * Locale
1727
- * @description Supported locales (language-country format)
1728
- * @enum {string}
1729
- */
1730
- Locale: "en-US" | "es-PR" | "es-ES" | "fr-FR" | "pt-BR" | "de-DE" | "it-IT" | "ja-JP" | "zh-CN";
1731
1845
  /**
1732
1846
  * VariantPricingInput
1733
1847
  * @description Pricing data for variant creation.
@@ -1763,337 +1877,223 @@ export interface components {
1763
1877
  */
1764
1878
  is_active: boolean;
1765
1879
  };
1766
- /** Body_createProductImage */
1767
- Body_createProductImage: {
1768
- /**
1769
- * File
1770
- * Format: binary
1771
- */
1772
- file: string;
1773
- };
1774
- /**
1775
- * AddBundleItemRequest
1776
- * @example {
1777
- * "discount_percentage": 10,
1778
- * "display_order": 0,
1779
- * "is_required": true,
1780
- * "is_visible": true,
1781
- * "item_product_id": 456,
1782
- * "quantity": 1
1783
- * }
1784
- */
1785
- AddBundleItemRequest: {
1786
- /**
1787
- * Item Product Id
1788
- * @example 456
1789
- */
1790
- item_product_id: number;
1791
- /**
1792
- * Quantity
1793
- * @default 1
1794
- * @example 1
1795
- */
1796
- quantity: number;
1797
- /**
1798
- * Discount Percentage
1799
- * @description Discount % (0-100)
1800
- * @example 10
1801
- */
1802
- discount_percentage?: number | null;
1803
- /**
1804
- * Override Price
1805
- * @description Override price for this item
1806
- * @example 49.99
1807
- */
1808
- override_price?: number | null;
1809
- /**
1810
- * Is Required
1811
- * @default true
1812
- * @example true
1813
- */
1814
- is_required: boolean;
1815
- /**
1816
- * Is Visible
1817
- * @default true
1818
- * @example true
1819
- */
1820
- is_visible: boolean;
1821
- /**
1822
- * Display Order
1823
- * @default 0
1824
- * @example 0
1825
- */
1826
- display_order: number;
1827
- };
1828
- /**
1829
- * AddTagToProductRequest
1830
- * @example {
1831
- * "display_order": 0,
1832
- * "tag_id": 5
1833
- * }
1834
- */
1835
- AddTagToProductRequest: {
1836
- /**
1837
- * Tag Id
1838
- * @example 5
1839
- */
1840
- tag_id: number;
1841
- /**
1842
- * Display Order
1843
- * @default 0
1844
- * @example 0
1845
- */
1846
- display_order: number;
1847
- };
1848
1880
  /**
1849
- * ProductPriceType
1881
+ * ProductType
1882
+ * @description Product types supported (11 active types)
1850
1883
  * @enum {string}
1851
1884
  */
1852
- ProductPriceType: "free" | "subscription" | "onetime" | "emi";
1853
- /** ProductPriceUpdateRequest */
1854
- ProductPriceUpdateRequest: {
1855
- /** Amount */
1856
- amount?: number | null;
1857
- currency?: components["schemas"]["ProductCurrency"] | null;
1858
- interval?: components["schemas"]["ProductInterval"] | null;
1859
- /** Interval Count */
1860
- interval_count?: number | null;
1861
- /** Trial Period Days */
1862
- trial_period_days?: number | null;
1863
- /** Initial Amount */
1864
- initial_amount?: number | null;
1865
- /** Compare Price */
1866
- compare_price?: number | null;
1867
- /** Is Active */
1868
- is_active?: boolean | null;
1869
- };
1885
+ ProductType: "course" | "package" | "session" | "webinar" | "bundle" | "meeting" | "open_class" | "plan" | "test" | "appointment" | "limit_minutes";
1870
1886
  /**
1871
- * ProductCreateRequest
1872
- * @description Create new product (base record only)
1873
- * Identity (title, description, images) managed separately via ProductIdentity endpoints
1887
+ * SeoUpsertRequest
1888
+ * @description Unified SEO upsert schema for all entity types (space, product, service, ...).
1889
+ *
1890
+ * Locale is NOT in this body — it comes from the URL path:
1891
+ * PUT /v1/spaces/admin/{space_id}/seo/{locale}
1892
+ * PUT /v1/products/{product_id}/seo/{locale}
1893
+ *
1894
+ * All fields are optional; supply only what you want to set.
1895
+ * Fields absent from the request body are stored as NULL (PUT semantics — full replace).
1896
+ *
1897
+ * extra='forbid' inherited from BaseSeoFields — unknown keys are rejected.
1898
+ * All validators (robots, URL, og_locale, twitter handle, alternate_languages)
1899
+ * are also inherited from BaseSeoFields.
1900
+ * @example {
1901
+ * "alternate_languages": [
1902
+ * {
1903
+ * "lang": "en-US",
1904
+ * "url": "https://www.example.com/courses/python"
1905
+ * },
1906
+ * {
1907
+ * "lang": "es-PR",
1908
+ * "url": "https://www.example.com/es/cursos/python"
1909
+ * },
1910
+ * {
1911
+ * "lang": "fr-FR",
1912
+ * "url": "https://www.example.com/fr/cours/python"
1913
+ * },
1914
+ * {
1915
+ * "lang": "x-default",
1916
+ * "url": "https://www.example.com/courses/python"
1917
+ * }
1918
+ * ],
1919
+ * "canonical_url": "https://www.example.com/courses/python",
1920
+ * "is_indexable": true,
1921
+ * "meta_description": "Explore our full library of Python courses. Beginner to advanced, taught by industry experts.",
1922
+ * "meta_keywords": "python, programming, learn python, python course, coding",
1923
+ * "meta_title": "Browse Python Courses — Learn at Any Level",
1924
+ * "og_description": "From beginner to advanced. Join 50,000+ learners on MyPlatform.",
1925
+ * "og_image": "https://cdn.example.com/og/python-courses.jpg",
1926
+ * "og_image_alt": "A student learning Python on a laptop in a modern workspace",
1927
+ * "og_image_height": 630,
1928
+ * "og_image_width": 1200,
1929
+ * "og_locale": "en_US",
1930
+ * "og_site_name": "MyPlatform",
1931
+ * "og_title": "Python Courses — Learn at Your Own Pace",
1932
+ * "og_type": "website",
1933
+ * "og_url": "https://www.example.com/courses/python",
1934
+ * "robots": "index,follow,max-snippet:-1,max-image-preview:large,max-video-preview:30",
1935
+ * "structured_data": {
1936
+ * "@context": "https://schema.org",
1937
+ * "@type": "ItemList",
1938
+ * "description": "Browse all Python courses on MyPlatform",
1939
+ * "itemListElement": [
1940
+ * {
1941
+ * "@type": "ListItem",
1942
+ * "name": "Python for Beginners",
1943
+ * "position": 1,
1944
+ * "url": "https://www.example.com/courses/python-beginners"
1945
+ * },
1946
+ * {
1947
+ * "@type": "ListItem",
1948
+ * "name": "Advanced Python",
1949
+ * "position": 2,
1950
+ * "url": "https://www.example.com/courses/python-advanced"
1951
+ * }
1952
+ * ],
1953
+ * "name": "Python Courses",
1954
+ * "numberOfItems": 42,
1955
+ * "url": "https://www.example.com/courses/python"
1956
+ * },
1957
+ * "twitter_card": "summary_large_image",
1958
+ * "twitter_creator": "@myplatform",
1959
+ * "twitter_description": "From beginner to advanced. Join 50,000+ learners.",
1960
+ * "twitter_image": "https://cdn.example.com/twitter/python-courses.jpg",
1961
+ * "twitter_image_alt": "A student learning Python on a laptop",
1962
+ * "twitter_site": "@myplatform",
1963
+ * "twitter_title": "Python Courses on MyPlatform"
1964
+ * }
1874
1965
  */
1875
- ProductCreateRequest: {
1876
- /**
1877
- * Company Id
1878
- * @description Company ID for multi-company orgs
1879
- * @example 1
1880
- */
1881
- company_id?: number | null;
1882
- /**
1883
- * @description Product type
1884
- * @example course
1885
- */
1886
- product_type: components["schemas"]["ProductType"];
1887
- /**
1888
- * Featured
1889
- * @description Featured product flag
1890
- * @default false
1891
- * @example false
1892
- */
1893
- featured: boolean;
1966
+ SeoUpsertRequest: {
1894
1967
  /**
1895
- * Is Digital
1896
- * @description Digital product (default: True)
1897
- * @default true
1898
- * @example true
1968
+ * Og Title
1969
+ * @description og:title headline shown in social link previews. Defaults to the entity title if omitted. Keep ≤95 chars.
1899
1970
  */
1900
- is_digital: boolean;
1971
+ og_title?: string | null;
1901
1972
  /**
1902
- * Visibility
1903
- * @description Visibility: public, private, hidden, unlisted
1904
- * @default public
1905
- * @example public
1973
+ * Og Description
1974
+ * @description og:description subtitle shown in social link previews.
1906
1975
  */
1907
- visibility: string | null;
1976
+ og_description?: string | null;
1908
1977
  /**
1909
- * Is Org Level
1910
- * @description Organization-level product (True) vs user-created (False)
1911
- * @default true
1912
- * @example true
1978
+ * Og Image
1979
+ * @description og:image full URL (http/https) of the preview image. Recommended size: 1200×630 px.
1913
1980
  */
1914
- is_org_level: boolean | null;
1981
+ og_image?: string | null;
1915
1982
  /**
1916
- * Staff Id
1917
- * @description Staff/instructor who delivers this product
1918
- * @example 5
1983
+ * Og Type
1984
+ * @description og:type content type for social platforms. Values: 'website' | 'article' | 'product' | 'video.other' | 'music.song' | 'profile' | 'book'.
1919
1985
  */
1920
- staff_id?: number | null;
1986
+ og_type?: ("website" | "article" | "product" | "video.other" | "music.song" | "profile" | "book") | null;
1921
1987
  /**
1922
- * Owner Id
1923
- * @description Owner of the product (user who created/owns it)
1924
- * @example 10
1988
+ * Twitter Card
1989
+ * @description twitter:card card layout on Twitter/X. Values: 'summary' | 'summary_large_image' | 'app' | 'player'.
1925
1990
  */
1926
- owner_id?: number | null;
1991
+ twitter_card?: ("summary" | "summary_large_image" | "app" | "player") | null;
1927
1992
  /**
1928
- * Title
1929
- * @description DEPRECATED: Use ProductIdentity instead
1930
- * @example Python Programming
1993
+ * Twitter Title
1994
+ * @description twitter:title overrides og_title for Twitter/X. Keep ≤70 chars.
1931
1995
  */
1932
- title?: string | null;
1996
+ twitter_title?: string | null;
1933
1997
  /**
1934
- * Description
1935
- * @description DEPRECATED: Use ProductIdentity instead
1936
- * @example Learn Python from scratch
1998
+ * Twitter Description
1999
+ * @description twitter:description overrides og_description for Twitter/X.
1937
2000
  */
1938
- description?: string | null;
1939
- };
1940
- /**
1941
- * CreateTagRequest
1942
- * @example {
1943
- * "color": "#3776AB",
1944
- * "description": "Programming language tag for Python courses",
1945
- * "tag_name": "Python Programming",
1946
- * "tag_type": "skill"
1947
- * }
1948
- */
1949
- CreateTagRequest: {
2001
+ twitter_description?: string | null;
1950
2002
  /**
1951
- * Tag Name
1952
- * @example Python Programming
2003
+ * Twitter Image
2004
+ * @description twitter:image — full URL (http/https). Overrides og_image for Twitter/X. Min 144×144 px, max 4096×4096 px.
1953
2005
  */
1954
- tag_name: string;
2006
+ twitter_image?: string | null;
1955
2007
  /**
1956
- * Tag Type
1957
- * @description category, topic, skill, difficulty
1958
- * @example skill
2008
+ * Canonical Url
2009
+ * @description <link rel='canonical'>. Full URL (http/https). Set when this page has duplicate content at another URL.
1959
2010
  */
1960
- tag_type?: string | null;
2011
+ canonical_url?: string | null;
1961
2012
  /**
1962
- * Description
1963
- * @example Programming language tag for Python courses
2013
+ * Robots
2014
+ * @description <meta name='robots'>. Comma-separated directives. Simple: index, noindex, follow, nofollow, noarchive, nosnippet, noimageindex, none, all, notranslate, noodp. Parametric: max-snippet:-1, max-snippet:150, max-image-preview:none|standard|large, max-video-preview:-1, max-video-preview:30, unavailable_after:<date>. Examples: 'index,follow' | 'noindex,nofollow' | 'index,follow,max-snippet:-1,max-image-preview:large'.
1964
2015
  */
1965
- description?: string | null;
2016
+ robots?: string | null;
1966
2017
  /**
1967
- * Color
1968
- * @description HEX color code
1969
- * @example #3776AB
2018
+ * Meta Title
2019
+ * @description <title> and <meta name='title'>. Keep ≤60 chars for Google display.
1970
2020
  */
1971
- color?: string | null;
1972
- };
1973
- /** ProductPriceRequest */
1974
- ProductPriceRequest: {
2021
+ meta_title?: string | null;
1975
2022
  /**
1976
- * Company Id
1977
- * @description Company ID for gateway configuration
1978
- * @example 1
2023
+ * Meta Description
2024
+ * @description <meta name='description'>. Keep ≤160 chars for Google display.
1979
2025
  */
1980
- company_id: number;
1981
- /** @example subscription */
1982
- price_type: components["schemas"]["ProductPriceType"];
2026
+ meta_description?: string | null;
1983
2027
  /**
1984
- * Amount
1985
- * @example 52
2028
+ * Meta Keywords
2029
+ * @description Comma-separated keywords. Low weight for Google, used for internal search.
1986
2030
  */
1987
- amount: number;
1988
- /** @example USD */
1989
- currency: components["schemas"]["ProductCurrency"];
2031
+ meta_keywords?: string | null;
1990
2032
  /**
1991
- * Gateway
1992
- * @example stripe
2033
+ * Og Image Width
2034
+ * @description og:image:width in pixels. Recommended: 1200.
1993
2035
  */
1994
- gateway?: string | null;
2036
+ og_image_width?: number | null;
1995
2037
  /**
1996
- * Is Live
1997
- * @default false
1998
- * @example false
2038
+ * Og Image Height
2039
+ * @description og:image:height in pixels. Recommended: 630.
1999
2040
  */
2000
- is_live: boolean;
2001
- /** @example month */
2002
- interval?: components["schemas"]["ProductInterval"] | null;
2041
+ og_image_height?: number | null;
2003
2042
  /**
2004
- * Interval Count
2005
- * @example 1
2043
+ * Og Image Alt
2044
+ * @description og:image:alt — alt text for the OG image.
2006
2045
  */
2007
- interval_count?: number | null;
2046
+ og_image_alt?: string | null;
2008
2047
  /**
2009
- * Trial Period Days
2010
- * @default 0
2011
- * @example 0
2048
+ * Og Url
2049
+ * @description og:url — canonical URL used by social platforms.
2012
2050
  */
2013
- trial_period_days: number | null;
2051
+ og_url?: string | null;
2014
2052
  /**
2015
- * Initial Amount
2016
- * @example 0
2053
+ * Og Site Name
2054
+ * @description og:site_name — your platform name shown in the link preview card.
2017
2055
  */
2018
- initial_amount?: number | null;
2056
+ og_site_name?: string | null;
2019
2057
  /**
2020
- * Compare Price
2021
- * @example 0
2058
+ * Og Locale
2059
+ * @description og:locale — language in underscore format: en_US, es_ES, fr_FR.
2022
2060
  */
2023
- compare_price?: number | null;
2061
+ og_locale?: string | null;
2024
2062
  /**
2025
- * Object Id
2026
- * @example 0
2063
+ * Twitter Image Alt
2064
+ * @description twitter:image:alt — alt text for the Twitter card image.
2027
2065
  */
2028
- object_id?: number | null;
2066
+ twitter_image_alt?: string | null;
2029
2067
  /**
2030
- * Module Id
2031
- * @example 0
2068
+ * Twitter Site
2069
+ * @description twitter:site — your Twitter/X account handle. Must start with '@'.
2032
2070
  */
2033
- module_id?: number | null;
2071
+ twitter_site?: string | null;
2034
2072
  /**
2035
- * Requires Payment Method Upfront
2036
- * @description False=Gateway-managed trial (send trial to gateway), True=App-managed trial (don't send trial to gateway)
2037
- * @default false
2038
- * @example false
2073
+ * Twitter Creator
2074
+ * @description twitter:creator author's Twitter/X handle. Must start with '@'.
2039
2075
  */
2040
- requires_payment_method_upfront: boolean;
2041
- };
2042
- /**
2043
- * @example {
2044
- * "status": "success",
2045
- * "message": "Operation successful",
2046
- * "message_code": "api_suc_20001",
2047
- * "data": {},
2048
- * "metadata": {
2049
- * "timestamp": "2026-03-26T10:00:00.000Z",
2050
- * "requestId": "07e22004-cb60-4dfc-bc9c-b6f99664dca1",
2051
- * "traceId": "a9f1204c-bb82-41de-b234-7c3a9e120000",
2052
- * "version": "v1",
2053
- * "executionTime": 42,
2054
- * "language": "en-US"
2055
- * }
2056
- * }
2057
- */
2058
- StandardResponse: {
2059
- /** @example success */
2060
- status?: string;
2061
- data?: Record<string, never> | null;
2062
- /** @example Operation successful */
2063
- message?: string | null;
2064
- /** @example api_suc_20001 */
2065
- message_code?: string | null;
2066
- metadata?: Record<string, never> | null;
2067
- error?: components["schemas"]["ErrorResponse"];
2068
- };
2069
- /**
2070
- * ProductStatus
2071
- * @description Product status values (Phase 1 - VARCHAR)
2072
- * @enum {string}
2073
- */
2074
- ProductStatus: "draft" | "published" | "archived" | "review_required" | "deleted";
2075
- /**
2076
- * VariantImageInput
2077
- * @description Image data for variant creation.
2078
- */
2079
- VariantImageInput: {
2076
+ twitter_creator?: string | null;
2080
2077
  /**
2081
- * Image Url
2082
- * @description Image URL
2078
+ * Is Indexable
2079
+ * @description System-level indexing override. False → page is treated as noindex regardless of the robots field. True → robots field is authoritative.
2080
+ * @default true
2083
2081
  */
2084
- image_url: string;
2082
+ is_indexable: boolean;
2085
2083
  /**
2086
- * Image Type
2087
- * @description primary, gallery, thumbnail
2088
- * @default primary
2084
+ * Structured Data
2085
+ * @description Schema.org JSON-LD object for Google rich results.
2089
2086
  */
2090
- image_type: string;
2087
+ structured_data?: {
2088
+ [key: string]: unknown;
2089
+ } | null;
2091
2090
  /**
2092
- * Display Order
2093
- * @description Display order
2094
- * @default 100
2091
+ * Alternate Languages
2092
+ * @description hreflang list: [{"lang":"en-US","url":"https://..."},{"lang":"x-default","url":"..."}]. Always include x-default.
2095
2093
  */
2096
- display_order: number;
2094
+ alternate_languages?: {
2095
+ [key: string]: string;
2096
+ }[] | null;
2097
2097
  };
2098
2098
  };
2099
2099
  responses: never;
@@ -7865,7 +7865,7 @@ export interface operations {
7865
7865
  };
7866
7866
  requestBody: {
7867
7867
  content: {
7868
- "application/json": components["schemas"]["CreateTagRequest"];
7868
+ "application/json": components["schemas"]["app__routes__products__product_phase2_routes__CreateTagRequest"];
7869
7869
  };
7870
7870
  };
7871
7871
  responses: {