late-sdk 0.0.782 → 0.0.784

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 (60) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +15 -0
  3. data/docs/CreatePhoneNumberStockWatchRequest.md +18 -0
  4. data/docs/ListPhoneNumberStockWatches200Response.md +18 -0
  5. data/docs/PhoneNumberStockWatch.md +24 -0
  6. data/docs/PhoneNumbersApi.md +203 -0
  7. data/docs/UsageApi.md +8 -2
  8. data/docs/UsageAttributionGroup.md +22 -0
  9. data/docs/UsageAttributionSlice.md +20 -0
  10. data/docs/UsageAttributionSliceByProduct.md +34 -0
  11. data/docs/UsageMetering.md +5 -1
  12. data/docs/UsageMeteringAttribution.md +26 -0
  13. data/docs/UsageMeteringScope.md +49 -0
  14. data/docs/UsageMeteringScopeOneOf.md +18 -0
  15. data/docs/WebhookEventsApi.md +69 -0
  16. data/docs/WebhookPayloadPhoneNumberStockAvailable.md +24 -0
  17. data/docs/WebhookPayloadPhoneNumberStockAvailableStock.md +20 -0
  18. data/docs/WebhookPayloadPhoneNumberStockAvailableStockTypesInner.md +20 -0
  19. data/lib/zernio-sdk/api/phone_numbers_api.rb +184 -0
  20. data/lib/zernio-sdk/api/usage_api.rb +15 -2
  21. data/lib/zernio-sdk/api/webhook_events_api.rb +66 -0
  22. data/lib/zernio-sdk/models/create_phone_number_stock_watch_request.rb +183 -0
  23. data/lib/zernio-sdk/models/list_phone_number_stock_watches200_response.rb +149 -0
  24. data/lib/zernio-sdk/models/phone_number_stock_watch.rb +243 -0
  25. data/lib/zernio-sdk/models/usage_attribution_group.rb +190 -0
  26. data/lib/zernio-sdk/models/usage_attribution_slice.rb +156 -0
  27. data/lib/zernio-sdk/models/usage_attribution_slice_by_product.rb +220 -0
  28. data/lib/zernio-sdk/models/usage_metering.rb +22 -4
  29. data/lib/zernio-sdk/models/usage_metering_attribution.rb +223 -0
  30. data/lib/zernio-sdk/models/usage_metering_call_usage.rb +1 -1
  31. data/lib/zernio-sdk/models/usage_metering_peaks.rb +1 -1
  32. data/lib/zernio-sdk/models/usage_metering_scope.rb +105 -0
  33. data/lib/zernio-sdk/models/usage_metering_scope_one_of.rb +164 -0
  34. data/lib/zernio-sdk/models/webhook_payload_phone_number_stock_available.rb +269 -0
  35. data/lib/zernio-sdk/models/webhook_payload_phone_number_stock_available_stock.rb +194 -0
  36. data/lib/zernio-sdk/models/webhook_payload_phone_number_stock_available_stock_types_inner.rb +192 -0
  37. data/lib/zernio-sdk/version.rb +1 -1
  38. data/lib/zernio-sdk.rb +12 -0
  39. data/openapi.yaml +236 -8
  40. data/spec/api/phone_numbers_api_spec.rb +33 -0
  41. data/spec/api/usage_api_spec.rb +4 -1
  42. data/spec/models/create_phone_number_stock_watch_request_spec.rb +36 -0
  43. data/spec/models/create_webhook_settings_request_spec.rb +1 -1
  44. data/spec/models/list_phone_number_stock_watches200_response_spec.rb +36 -0
  45. data/spec/models/phone_number_stock_watch_spec.rb +54 -0
  46. data/spec/models/update_webhook_settings_request_spec.rb +1 -1
  47. data/spec/models/usage_attribution_group_spec.rb +48 -0
  48. data/spec/models/usage_attribution_slice_by_product_spec.rb +84 -0
  49. data/spec/models/usage_attribution_slice_spec.rb +42 -0
  50. data/spec/models/usage_metering_attribution_spec.rb +64 -0
  51. data/spec/models/usage_metering_scope_one_of_spec.rb +36 -0
  52. data/spec/models/usage_metering_scope_spec.rb +32 -0
  53. data/spec/models/usage_metering_spec.rb +12 -0
  54. data/spec/models/webhook_payload_phone_number_stock_available_spec.rb +58 -0
  55. data/spec/models/webhook_payload_phone_number_stock_available_stock_spec.rb +42 -0
  56. data/spec/models/webhook_payload_phone_number_stock_available_stock_types_inner_spec.rb +42 -0
  57. data/spec/models/webhook_spec.rb +1 -1
  58. data/zernio-sdk-0.0.784.gem +0 -0
  59. metadata +50 -2
  60. data/zernio-sdk-0.0.782.gem +0 -0
data/lib/zernio-sdk.rb CHANGED
@@ -278,6 +278,7 @@ require 'zernio-sdk/models/create_phone_number_port_in201_response_orders_inner'
278
278
  require 'zernio-sdk/models/create_phone_number_port_in_request'
279
279
  require 'zernio-sdk/models/create_phone_number_port_in_request_end_user'
280
280
  require 'zernio-sdk/models/create_phone_number_port_in_request_requirements_inner'
281
+ require 'zernio-sdk/models/create_phone_number_stock_watch_request'
281
282
  require 'zernio-sdk/models/create_pinterest_board201_response'
282
283
  require 'zernio-sdk/models/create_pinterest_board201_response_board'
283
284
  require 'zernio-sdk/models/create_pinterest_board_request'
@@ -1005,6 +1006,7 @@ require 'zernio-sdk/models/list_phone_number_countries200_response_countries_inn
1005
1006
  require 'zernio-sdk/models/list_phone_number_countries200_response_countries_inner_types_inner'
1006
1007
  require 'zernio-sdk/models/list_phone_number_port_ins200_response'
1007
1008
  require 'zernio-sdk/models/list_phone_number_port_ins200_response_orders_inner'
1009
+ require 'zernio-sdk/models/list_phone_number_stock_watches200_response'
1008
1010
  require 'zernio-sdk/models/list_phone_numbers200_response'
1009
1011
  require 'zernio-sdk/models/list_phone_numbers200_response_connected_inner'
1010
1012
  require 'zernio-sdk/models/list_phone_numbers200_response_numbers_inner'
@@ -1107,6 +1109,7 @@ require 'zernio-sdk/models/on_whats_app_number_verification_required_request'
1107
1109
  require 'zernio-sdk/models/pagination'
1108
1110
  require 'zernio-sdk/models/pause_workflow200_response'
1109
1111
  require 'zernio-sdk/models/pending'
1112
+ require 'zernio-sdk/models/phone_number_stock_watch'
1110
1113
  require 'zernio-sdk/models/pin_discord_message200_response'
1111
1114
  require 'zernio-sdk/models/pinterest_platform_data'
1112
1115
  require 'zernio-sdk/models/platform_analytics'
@@ -1557,13 +1560,19 @@ require 'zernio-sdk/models/uploaded_file'
1557
1560
  require 'zernio-sdk/models/uploaded_or_derived_audience'
1558
1561
  require 'zernio-sdk/models/uploaded_or_derived_audience_companies_inner'
1559
1562
  require 'zernio-sdk/models/uploaded_or_derived_audience_match_rules_inner'
1563
+ require 'zernio-sdk/models/usage_attribution_group'
1564
+ require 'zernio-sdk/models/usage_attribution_slice'
1565
+ require 'zernio-sdk/models/usage_attribution_slice_by_product'
1560
1566
  require 'zernio-sdk/models/usage_metering'
1567
+ require 'zernio-sdk/models/usage_metering_attribution'
1561
1568
  require 'zernio-sdk/models/usage_metering_call_usage'
1562
1569
  require 'zernio-sdk/models/usage_metering_call_usage_whatsapp'
1563
1570
  require 'zernio-sdk/models/usage_metering_days_inner'
1564
1571
  require 'zernio-sdk/models/usage_metering_line_items_inner'
1565
1572
  require 'zernio-sdk/models/usage_metering_peaks'
1566
1573
  require 'zernio-sdk/models/usage_metering_period'
1574
+ require 'zernio-sdk/models/usage_metering_scope'
1575
+ require 'zernio-sdk/models/usage_metering_scope_one_of'
1567
1576
  require 'zernio-sdk/models/usage_metering_tax'
1568
1577
  require 'zernio-sdk/models/usage_metering_totals'
1569
1578
  require 'zernio-sdk/models/usage_stats'
@@ -1664,6 +1673,9 @@ require 'zernio-sdk/models/webhook_payload_message_sent_message'
1664
1673
  require 'zernio-sdk/models/webhook_payload_message_sent_message_attachments_inner'
1665
1674
  require 'zernio-sdk/models/webhook_payload_message_sent_message_sender'
1666
1675
  require 'zernio-sdk/models/webhook_payload_message_sent_metadata'
1676
+ require 'zernio-sdk/models/webhook_payload_phone_number_stock_available'
1677
+ require 'zernio-sdk/models/webhook_payload_phone_number_stock_available_stock'
1678
+ require 'zernio-sdk/models/webhook_payload_phone_number_stock_available_stock_types_inner'
1667
1679
  require 'zernio-sdk/models/webhook_payload_post'
1668
1680
  require 'zernio-sdk/models/webhook_payload_post_platform'
1669
1681
  require 'zernio-sdk/models/webhook_payload_post_platform_account'
data/openapi.yaml CHANGED
@@ -182,6 +182,7 @@ x-documentation:
182
182
  - `call.failed` - A call failed with a hard error before or during bridging
183
183
  - `call.permission_request` - A WhatsApp user accepted or rejected your call-permission request
184
184
  - `whatsapp.automatic_event` - Meta's automatic event identification detected a lead or purchase in a Click-to-WhatsApp conversation. Branch on `eventName` (`LeadSubmitted` | `Purchase`); carries the `ctwa_clid` Conversions API match key
185
+ - `phone_number.stock_available` - An out-of-stock country you watch (POST /v1/phone-numbers/stock-watches) has deliverable numbers again. Fires once per watch, then the watch is consumed. Carries the deliverable count per number type at sweep time (first come, first served).
185
186
  - `whatsapp.number.kyc_submitted` - An end customer completed a hosted KYC share link; the number entered regulatory review under your account
186
187
  - `whatsapp.number.activated` - A provisioned WhatsApp number finished setup and is ready to connect
187
188
  - `whatsapp.number.declined` - A regulated number order was declined in review; nothing activates and nothing is billed
@@ -430,7 +431,7 @@ tags:
430
431
  - name: Webhooks
431
432
  description: |
432
433
  Configure webhooks for real-time notifications. Webhooks can be created from the dashboard (Settings → Webhooks) or via this API.
433
- Events: post.scheduled, post.published, post.failed, post.partial, post.cancelled, post.recycled, post.platform.published, post.platform.failed, post.platform.deleted, post.tiktok.url_resolved, post.external.created, post.external.updated, post.external.deleted, account.connected, account.disconnected, account.ads.initial_sync_completed, message.received, conversation.started, call.received, call.ended, call.failed, call.permission_request, message.sent, message.edited, message.deleted, message.delivered, message.read, message.failed, reaction.received, referral.received, comment.received, review.new, review.updated, lead.received, ad.status_changed, whatsapp.template.status_updated, whatsapp.template.category_updated, whatsapp.account.name_status_updated, whatsapp.automatic_event, whatsapp.number.activated, whatsapp.number.declined, whatsapp.number.action_required, whatsapp.number.verification_required, whatsapp.number.suspended, whatsapp.number.reactivated, whatsapp.number.released, whatsapp.number.kyc_submitted, verification.approved, verification.failed, webhook.test.
434
+ Events: post.scheduled, post.published, post.failed, post.partial, post.cancelled, post.recycled, post.platform.published, post.platform.failed, post.platform.deleted, post.tiktok.url_resolved, post.external.created, post.external.updated, post.external.deleted, account.connected, account.disconnected, account.ads.initial_sync_completed, message.received, conversation.started, call.received, call.ended, call.failed, call.permission_request, message.sent, message.edited, message.deleted, message.delivered, message.read, message.failed, reaction.received, referral.received, comment.received, review.new, review.updated, lead.received, ad.status_changed, whatsapp.template.status_updated, whatsapp.template.category_updated, whatsapp.account.name_status_updated, whatsapp.automatic_event, whatsapp.number.activated, whatsapp.number.declined, whatsapp.number.action_required, whatsapp.number.verification_required, whatsapp.number.suspended, whatsapp.number.reactivated, whatsapp.number.released, whatsapp.number.kyc_submitted, phone_number.stock_available, verification.approved, verification.failed, webhook.test.
434
435
  Security: optional HMAC-SHA256 signature in X-Zernio-Signature header. Configure a secret key to enable verification. Custom headers supported.
435
436
 
436
437
  Resource groups. Every event belongs to one group: post.* to publishing, message.*, reaction.*, conversation.*, call.* and whatsapp.automatic_event to messages, comment.* and review.* to engagement, lead.* to contacts, ad.* to ads, account.*, whatsapp.template.* and whatsapp.account.* to accounts, whatsapp.number.* and verification.* to telephony, webhook.test to webhooks. Two independent controls use that mapping. (1) A restricted (zrk_) API key can only subscribe to, test-fire, redeliver, or read delivery logs for events in the groups it holds, so it can never create a subscription broader than itself. (2) Each subscription carries its own `disabledResourceGroups` denylist: events in a disabled group are dropped before delivery to that endpoint, on live delivery and on every replay path, no matter which key or session created the subscription. Changing that denylist applies to every event emitted after the change; events already queued when it landed can still be delivered for up to five minutes after they were enqueued, because the delivery worker trusts a five-minute enqueue-time snapshot before re-checking. Absent or empty on a subscription means it receives everything it subscribes to, which is the behavior of every subscription created before the field existed.
@@ -2430,7 +2431,7 @@ components:
2430
2431
  type: array
2431
2432
  items:
2432
2433
  type: string
2433
- enum: [post.scheduled, post.published, post.failed, post.partial, post.cancelled, post.recycled, post.platform.published, post.platform.failed, post.platform.deleted, post.tiktok.url_resolved, post.external.created, post.external.updated, post.external.deleted, account.connected, account.disconnected, account.ads.initial_sync_completed, message.received, conversation.started, call.received, call.ended, call.failed, call.permission_request, message.sent, message.edited, message.deleted, message.delivered, message.read, message.failed, reaction.received, referral.received, comment.received, review.new, review.updated, lead.received, ad.status_changed, whatsapp.template.status_updated, whatsapp.template.category_updated, whatsapp.account.name_status_updated, whatsapp.automatic_event, whatsapp.number.activated, whatsapp.number.declined, whatsapp.number.action_required, whatsapp.number.verification_required, whatsapp.number.suspended, whatsapp.number.reactivated, whatsapp.number.released, whatsapp.number.kyc_submitted, verification.approved, verification.failed]
2434
+ enum: [post.scheduled, post.published, post.failed, post.partial, post.cancelled, post.recycled, post.platform.published, post.platform.failed, post.platform.deleted, post.tiktok.url_resolved, post.external.created, post.external.updated, post.external.deleted, account.connected, account.disconnected, account.ads.initial_sync_completed, message.received, conversation.started, call.received, call.ended, call.failed, call.permission_request, message.sent, message.edited, message.deleted, message.delivered, message.read, message.failed, reaction.received, referral.received, comment.received, review.new, review.updated, lead.received, ad.status_changed, whatsapp.template.status_updated, whatsapp.template.category_updated, whatsapp.account.name_status_updated, whatsapp.automatic_event, whatsapp.number.activated, whatsapp.number.declined, whatsapp.number.action_required, whatsapp.number.verification_required, whatsapp.number.suspended, whatsapp.number.reactivated, whatsapp.number.released, whatsapp.number.kyc_submitted, phone_number.stock_available, verification.approved, verification.failed]
2434
2435
  description: Events subscribed to
2435
2436
  isActive:
2436
2437
  type: boolean
@@ -2692,6 +2693,45 @@ components:
2692
2693
  type: string
2693
2694
  format: date-time
2694
2695
  description: 'UTC time at which Zernio generated this event (set once when the event payload is built, before delivery is queued). Retries and redeliveries keep the original value, so it reflects the event, not the delivery attempt.'
2696
+ PhoneNumberStockWatch:
2697
+ type: object
2698
+ required: [id, country, countryName, createdAt]
2699
+ properties:
2700
+ id: { type: string }
2701
+ country: { type: string, description: 'ISO 3166-1 alpha-2.' }
2702
+ countryName: { type: string }
2703
+ createdAt: { type: string, format: date-time }
2704
+ WebhookPayloadPhoneNumberStockAvailable:
2705
+ type: object
2706
+ description: Webhook payload for phone_number.stock_available events
2707
+ required: [id, event, stock, timestamp]
2708
+ properties:
2709
+ id:
2710
+ type: string
2711
+ description: Stable webhook event ID
2712
+ event:
2713
+ type: string
2714
+ enum: [phone_number.stock_available]
2715
+ stock:
2716
+ type: object
2717
+ required: [country, types]
2718
+ properties:
2719
+ country:
2720
+ type: string
2721
+ description: 'ISO 3166-1 alpha-2 country code of the watched country.'
2722
+ types:
2723
+ type: array
2724
+ description: 'Number types deliverable at sweep time. Only types with stock are listed.'
2725
+ items:
2726
+ type: object
2727
+ required: [numberType, availableCount]
2728
+ properties:
2729
+ numberType: { type: string, description: 'local, mobile, national or toll_free.' }
2730
+ availableCount: { type: integer, description: 'Deliverable numbers at sweep time; first come, first served.' }
2731
+ timestamp:
2732
+ type: string
2733
+ format: date-time
2734
+ description: 'UTC time at which Zernio generated this event (set once when the event payload is built, before delivery is queued). Retries and redeliveries keep the original value, so it reflects the event, not the delivery attempt.'
2695
2735
  WebhookPayloadAccountDisconnected:
2696
2736
  type: object
2697
2737
  description: Webhook payload for account disconnected events
@@ -6960,14 +7000,14 @@ components:
6960
7000
  totalUsd: { type: number }
6961
7001
  quantity: { type: number }
6962
7002
  peaks:
6963
- type: object
6964
- description: Peak counts over the window (Metronome COUNT metrics + live active-number count).
7003
+ type: [object, "null"]
7004
+ description: 'Peak counts over the window (Metronome COUNT metrics + live active-number count). Null when `profileId` / `accountId` is set.'
6965
7005
  properties:
6966
7006
  accounts: { type: integer }
6967
7007
  numbers: { type: integer }
6968
7008
  callUsage:
6969
- type: object
6970
- description: Billable call volumes over the window.
7009
+ type: [object, "null"]
7010
+ description: 'Billable call volumes over the window. Null when `profileId` / `accountId` is set.'
6971
7011
  properties:
6972
7012
  whatsapp:
6973
7013
  type: object
@@ -7001,6 +7041,61 @@ components:
7001
7041
  ratePercent: { type: [number, "null"], description: "Combined rate percentage, e.g. 21." }
7002
7042
  jurisdictionLabel: { type: [string, "null"], description: 'Human jurisdiction label, e.g. "ES VAT" or "WA sales tax".' }
7003
7043
  reverseCharge: { type: boolean, description: True for EU/UK B2B reverse charge (0 tax added by design). }
7044
+ attribution:
7045
+ type: object
7046
+ description: 'Present with `groupBy`. The window''s spend split per profile or account; `sum(groups) + unattributed` equals `totals` per product.'
7047
+ properties:
7048
+ groupBy:
7049
+ type: string
7050
+ enum: [profile, account]
7051
+ groups:
7052
+ type: array
7053
+ items:
7054
+ $ref: '#/components/schemas/UsageAttributionGroup'
7055
+ unattributed:
7056
+ $ref: '#/components/schemas/UsageAttributionSlice'
7057
+ description: 'Spend no profile/account can claim: credits, 10DLC fees, Verify, and usage whose record no longer resolves to an account. Zero for a restricted principal.'
7058
+ totals:
7059
+ $ref: '#/components/schemas/UsageAttributionSlice'
7060
+ description: 'The window totals; for a restricted principal, the sum of the visible groups.'
7061
+ restricted:
7062
+ type: boolean
7063
+ description: 'True when the caller (profile-scoped API key or member) cannot see every profile: `groups` are filtered, `totals` sum them, `unattributed` is zero, and the top-level `days` / `totals` / `lineItems` are projected onto the visible groups with `peaks`, `callUsage` and `tax` null.'
7064
+ scope:
7065
+ description: 'Present with `profileId` / `accountId`: echoes the group the payload was projected onto.'
7066
+ oneOf:
7067
+ - type: object
7068
+ required: [profileId]
7069
+ properties:
7070
+ profileId: { type: string }
7071
+ - type: object
7072
+ required: [accountId]
7073
+ properties:
7074
+ accountId: { type: string }
7075
+ UsageAttributionGroup:
7076
+ allOf:
7077
+ - $ref: '#/components/schemas/UsageAttributionSlice'
7078
+ - type: object
7079
+ required: [key]
7080
+ properties:
7081
+ key: { type: string, description: 'Profile id or account id, per `groupBy`.' }
7082
+ UsageAttributionSlice:
7083
+ type: object
7084
+ properties:
7085
+ byProduct:
7086
+ type: object
7087
+ description: USD per product family.
7088
+ properties:
7089
+ accounts: { type: number }
7090
+ numbers: { type: number }
7091
+ calls: { type: number }
7092
+ sms: { type: number }
7093
+ verify: { type: number }
7094
+ dlc: { type: number }
7095
+ xApi: { type: number }
7096
+ credits: { type: number }
7097
+ other: { type: number }
7098
+ totalUsd: { type: number }
7004
7099
  UsageStats:
7005
7100
  type: object
7006
7101
  description: |
@@ -10111,6 +10206,26 @@ webhooks:
10111
10206
  responses:
10112
10207
  '200':
10113
10208
  description: Webhook received successfully
10209
+ phone_number.stock_available:
10210
+ post:
10211
+ operationId: onPhoneNumberStockAvailable
10212
+ summary: Phone-number stock available event
10213
+ description: |
10214
+ Fired by the stock sweep (every 6h) the first time a country you watch
10215
+ via POST /v1/phone-numbers/stock-watches has deliverable numbers again.
10216
+ The watch is consumed, so the event fires once per watch; the stock
10217
+ counts are a snapshot and numbers are sold first come, first served.
10218
+ Buy with POST /v1/phone-numbers/purchase.
10219
+ tags: [Webhook Events]
10220
+ requestBody:
10221
+ required: true
10222
+ content:
10223
+ application/json:
10224
+ schema:
10225
+ $ref: '#/components/schemas/WebhookPayloadPhoneNumberStockAvailable'
10226
+ responses:
10227
+ '200':
10228
+ description: Webhook received successfully
10114
10229
  verification.approved:
10115
10230
  post:
10116
10231
  operationId: onVerificationApproved
@@ -13856,6 +13971,20 @@ paths:
13856
13971
  Also served at `GET /v1/usage/daily`. Usage-based accounts only —
13857
13972
  legacy Stripe accounts get `{ "supported": false, "days": [] }`.
13858
13973
 
13974
+ **Attribution (metering mode):** `groupBy=profile|account` adds an
13975
+ `attribution` breakdown of the window's spend per profile or account,
13976
+ assembled from your own records and pro-rated against the invoice so
13977
+ `sum(groups) + unattributed` equals `totals` exactly. `profileId` /
13978
+ `accountId` instead project the whole payload (`days`, `totals`,
13979
+ `lineItems`) onto that one group; `peaks`, `callUsage` and `tax` are
13980
+ then `null` (workspace-level facts). Projected `days` spread the
13981
+ group's period share over each day (usage is attributed per period,
13982
+ not per day). Profile-scoped API keys and members only see their
13983
+ profiles' groups (`attribution.restricted: true`, with `totals`
13984
+ summing the visible groups). Credits, 10DLC fees and Verify are always
13985
+ unattributed. `profileId` / `accountId` on their own do not select
13986
+ metering mode: pair them with `range`.
13987
+
13859
13988
  For per-domain consumption *volumes* use `GET /v1/usage/calls` and
13860
13989
  `GET /v1/usage/sms`. For the billing statement (balance, credits,
13861
13990
  caps, payment status) use `GET /v1/billing`.
@@ -13902,6 +14031,23 @@ paths:
13902
14031
  Bucketing of the `days` series: `day` (one row per UTC day),
13903
14032
  `month` (one row per calendar month, dated to the 1st), or `total`
13904
14033
  (no series — read `totals`). Does not affect `totals`.
14034
+ - name: groupBy
14035
+ in: query
14036
+ required: false
14037
+ schema:
14038
+ type: string
14039
+ enum: [profile, account]
14040
+ description: 'Metering mode. Adds `attribution`: the window''s spend split per profile or per account (keys are ids; resolve names via `GET /v1/profiles` / `GET /v1/accounts`).'
14041
+ - name: profileId
14042
+ in: query
14043
+ required: false
14044
+ schema: { type: string }
14045
+ description: 'Metering mode (pair with `range`). Project the payload onto this profile''s attributed share. Mutually exclusive with `accountId`, and `groupBy` (if given) must be `profile`; 404 when the profile is not in your workspace (or outside a scoped key''s profiles).'
14046
+ - name: accountId
14047
+ in: query
14048
+ required: false
14049
+ schema: { type: string }
14050
+ description: 'Metering mode (pair with `range`). Project the payload onto this account''s attributed share. Mutually exclusive with `profileId`, and `groupBy` (if given) must be `account`; 404 when the account is not visible to the caller.'
13905
14051
  responses:
13906
14052
  '200':
13907
14053
  description: |
@@ -24944,7 +25090,7 @@ paths:
24944
25090
  minItems: 1
24945
25091
  items:
24946
25092
  type: string
24947
- enum: [post.scheduled, post.published, post.failed, post.partial, post.cancelled, post.recycled, post.platform.published, post.platform.failed, post.platform.deleted, post.tiktok.url_resolved, post.external.created, post.external.updated, post.external.deleted, account.connected, account.disconnected, account.ads.initial_sync_completed, message.received, conversation.started, call.received, call.ended, call.failed, call.permission_request, message.sent, message.edited, message.deleted, message.delivered, message.read, message.failed, reaction.received, referral.received, comment.received, review.new, review.updated, lead.received, ad.status_changed, whatsapp.template.status_updated, whatsapp.template.category_updated, whatsapp.account.name_status_updated, whatsapp.automatic_event, whatsapp.number.activated, whatsapp.number.declined, whatsapp.number.action_required, whatsapp.number.verification_required, whatsapp.number.suspended, whatsapp.number.reactivated, whatsapp.number.released, whatsapp.number.kyc_submitted, verification.approved, verification.failed]
25093
+ enum: [post.scheduled, post.published, post.failed, post.partial, post.cancelled, post.recycled, post.platform.published, post.platform.failed, post.platform.deleted, post.tiktok.url_resolved, post.external.created, post.external.updated, post.external.deleted, account.connected, account.disconnected, account.ads.initial_sync_completed, message.received, conversation.started, call.received, call.ended, call.failed, call.permission_request, message.sent, message.edited, message.deleted, message.delivered, message.read, message.failed, reaction.received, referral.received, comment.received, review.new, review.updated, lead.received, ad.status_changed, whatsapp.template.status_updated, whatsapp.template.category_updated, whatsapp.account.name_status_updated, whatsapp.automatic_event, whatsapp.number.activated, whatsapp.number.declined, whatsapp.number.action_required, whatsapp.number.verification_required, whatsapp.number.suspended, whatsapp.number.reactivated, whatsapp.number.released, whatsapp.number.kyc_submitted, phone_number.stock_available, verification.approved, verification.failed]
24948
25094
  description: Events to subscribe to (at least one required)
24949
25095
  isActive:
24950
25096
  type: boolean
@@ -25063,7 +25209,7 @@ paths:
25063
25209
  minItems: 1
25064
25210
  items:
25065
25211
  type: string
25066
- enum: [post.scheduled, post.published, post.failed, post.partial, post.cancelled, post.recycled, post.platform.published, post.platform.failed, post.platform.deleted, post.tiktok.url_resolved, post.external.created, post.external.updated, post.external.deleted, account.connected, account.disconnected, account.ads.initial_sync_completed, message.received, conversation.started, call.received, call.ended, call.failed, call.permission_request, message.sent, message.edited, message.deleted, message.delivered, message.read, message.failed, reaction.received, referral.received, comment.received, review.new, review.updated, lead.received, ad.status_changed, whatsapp.template.status_updated, whatsapp.template.category_updated, whatsapp.account.name_status_updated, whatsapp.automatic_event, whatsapp.number.activated, whatsapp.number.declined, whatsapp.number.action_required, whatsapp.number.verification_required, whatsapp.number.suspended, whatsapp.number.reactivated, whatsapp.number.released, whatsapp.number.kyc_submitted, verification.approved, verification.failed]
25212
+ enum: [post.scheduled, post.published, post.failed, post.partial, post.cancelled, post.recycled, post.platform.published, post.platform.failed, post.platform.deleted, post.tiktok.url_resolved, post.external.created, post.external.updated, post.external.deleted, account.connected, account.disconnected, account.ads.initial_sync_completed, message.received, conversation.started, call.received, call.ended, call.failed, call.permission_request, message.sent, message.edited, message.deleted, message.delivered, message.read, message.failed, reaction.received, referral.received, comment.received, review.new, review.updated, lead.received, ad.status_changed, whatsapp.template.status_updated, whatsapp.template.category_updated, whatsapp.account.name_status_updated, whatsapp.automatic_event, whatsapp.number.activated, whatsapp.number.declined, whatsapp.number.action_required, whatsapp.number.verification_required, whatsapp.number.suspended, whatsapp.number.reactivated, whatsapp.number.released, whatsapp.number.kyc_submitted, phone_number.stock_available, verification.approved, verification.failed]
25067
25213
  description: Events to subscribe to. Must contain at least one event if provided.
25068
25214
  isActive:
25069
25215
  type: boolean
@@ -35122,6 +35268,88 @@ paths:
35122
35268
  '401': { $ref: '#/components/responses/Unauthorized' }
35123
35269
  '404': { description: Number not found }
35124
35270
 
35271
+ /v1/phone-numbers/stock-watches:
35272
+ post:
35273
+ x-resource-group: "telephony"
35274
+ operationId: createPhoneNumberStockWatch
35275
+ tags: [Phone Numbers]
35276
+ summary: Watch an out-of-stock country
35277
+ description: |
35278
+ Get notified the first time an out-of-stock country has deliverable
35279
+ numbers again: an email to the account holder plus the
35280
+ `phone_number.stock_available` webhook. Stock is re-checked every 6h.
35281
+ One watch per country; a repeat request returns the existing watch
35282
+ (200). The watch is consumed when it fires, so re-create it if you
35283
+ miss the stock. Up to 20 countries can be watched at once.
35284
+ security:
35285
+ - bearerAuth: []
35286
+ requestBody:
35287
+ required: true
35288
+ content:
35289
+ application/json:
35290
+ schema:
35291
+ type: object
35292
+ required: [country]
35293
+ properties:
35294
+ country: { type: string, minLength: 2, maxLength: 2, description: 'ISO 3166-1 alpha-2 code of a country listed by GET /v1/phone-numbers/countries.' }
35295
+ responses:
35296
+ '201':
35297
+ description: Watch created.
35298
+ content:
35299
+ application/json:
35300
+ schema:
35301
+ $ref: '#/components/schemas/PhoneNumberStockWatch'
35302
+ '200':
35303
+ description: A watch for this country already existed; returned unchanged.
35304
+ content:
35305
+ application/json:
35306
+ schema:
35307
+ $ref: '#/components/schemas/PhoneNumberStockWatch'
35308
+ '400': { $ref: '#/components/responses/BadRequest' }
35309
+ '401': { $ref: '#/components/responses/Unauthorized' }
35310
+ '409': { description: 'The country is in stock right now (buy instead of watching), or the 20-country watch limit is reached (code invalid_resource_state).' }
35311
+ get:
35312
+ x-resource-group: "telephony"
35313
+ operationId: listPhoneNumberStockWatches
35314
+ tags: [Phone Numbers]
35315
+ summary: List stock watches
35316
+ security:
35317
+ - bearerAuth: []
35318
+ responses:
35319
+ '200':
35320
+ description: The caller's active watches, oldest first.
35321
+ content:
35322
+ application/json:
35323
+ schema:
35324
+ type: object
35325
+ properties:
35326
+ watches:
35327
+ type: array
35328
+ items:
35329
+ $ref: '#/components/schemas/PhoneNumberStockWatch'
35330
+ '401': { $ref: '#/components/responses/Unauthorized' }
35331
+ /v1/phone-numbers/stock-watches/{id}:
35332
+ delete:
35333
+ x-resource-group: "telephony"
35334
+ operationId: deletePhoneNumberStockWatch
35335
+ tags: [Phone Numbers]
35336
+ summary: Stop watching a country
35337
+ security:
35338
+ - bearerAuth: []
35339
+ parameters:
35340
+ - { name: id, in: path, required: true, schema: { type: string } }
35341
+ responses:
35342
+ '200':
35343
+ description: Watch deleted.
35344
+ content:
35345
+ application/json:
35346
+ schema:
35347
+ type: object
35348
+ properties:
35349
+ deleted: { type: boolean }
35350
+ '400': { $ref: '#/components/responses/BadRequest' }
35351
+ '401': { $ref: '#/components/responses/Unauthorized' }
35352
+ '404': { description: 'Stock watch not found (code stock_watch_not_found).' }
35125
35353
  /v1/phone-numbers/sip-trunks:
35126
35354
  post:
35127
35355
  x-resource-group: "telephony"
@@ -94,6 +94,29 @@ describe 'PhoneNumbersApi' do
94
94
  end
95
95
  end
96
96
 
97
+ # unit tests for create_phone_number_stock_watch
98
+ # Watch an out-of-stock country
99
+ # Get notified the first time an out-of-stock country has deliverable numbers again: an email to the account holder plus the `phone_number.stock_available` webhook. Stock is re-checked every 6h. One watch per country; a repeat request returns the existing watch (200). The watch is consumed when it fires, so re-create it if you miss the stock. Up to 20 countries can be watched at once.
100
+ # @param create_phone_number_stock_watch_request
101
+ # @param [Hash] opts the optional parameters
102
+ # @return [PhoneNumberStockWatch]
103
+ describe 'create_phone_number_stock_watch test' do
104
+ it 'should work' do
105
+ # assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/
106
+ end
107
+ end
108
+
109
+ # unit tests for delete_phone_number_stock_watch
110
+ # Stop watching a country
111
+ # @param id
112
+ # @param [Hash] opts the optional parameters
113
+ # @return [DeleteSmsSenderId200Response]
114
+ describe 'delete_phone_number_stock_watch test' do
115
+ it 'should work' do
116
+ # assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/
117
+ end
118
+ end
119
+
97
120
  # unit tests for get_phone_number
98
121
  # Get phone number
99
122
  # Retrieve the current status of a purchased phone number. Poll this to track Meta pre-verification (US sync path) and, for regulated (Tier 3/4) numbers, the async lifecycle: pending_regulatory → active (or regulatory_declined). When a regulated number has an Onfido ID step, `onfidoVerificationUrl` appears here once the order is placed — forward it to the end user. (Or subscribe to the whatsapp.number.* webhooks instead of polling.)
@@ -178,6 +201,16 @@ describe 'PhoneNumbersApi' do
178
201
  end
179
202
  end
180
203
 
204
+ # unit tests for list_phone_number_stock_watches
205
+ # List stock watches
206
+ # @param [Hash] opts the optional parameters
207
+ # @return [ListPhoneNumberStockWatches200Response]
208
+ describe 'list_phone_number_stock_watches test' do
209
+ it 'should work' do
210
+ # assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/
211
+ end
212
+ end
213
+
181
214
  # unit tests for list_phone_numbers
182
215
  # List phone numbers
183
216
  # List all phone numbers purchased by the authenticated user. By default, released numbers are excluded. Connected (bring-your-own) WhatsApp numbers are returned in the separate `connected` array; they are not billed and have no provisioning lifecycle.
@@ -76,13 +76,16 @@ describe 'UsageApi' do
76
76
 
77
77
  # unit tests for get_usage
78
78
  # Usage snapshot (default) or billed-spend metering (with params)
79
- # Dual-mode endpoint, selected by query params — fully backward compatible: **Without metering params (the default):** the plan / quota / usage snapshot — plan name, billing period, limits, usage counts, access state. Identical to `GET /v1/usage-stats`. Existing integrations keep working unchanged. **With `range`, `granularity`, `from`, or `to`:** usage METERING — billed spend (USD) by product family (`accounts`, `numbers`, `calls`, `sms`, `dlc`, `xApi`, `credits`, `other`) over the window, at `day` / `month` / `total` granularity, from Metronome's invoice breakdown (the CHARGE view — always reconciles with what gets billed). Also served at `GET /v1/usage/daily`. Usage-based accounts only — legacy Stripe accounts get `{ \"supported\": false, \"days\": [] }`. For per-domain consumption *volumes* use `GET /v1/usage/calls` and `GET /v1/usage/sms`. For the billing statement (balance, credits, caps, payment status) use `GET /v1/billing`.
79
+ # Dual-mode endpoint, selected by query params — fully backward compatible: **Without metering params (the default):** the plan / quota / usage snapshot — plan name, billing period, limits, usage counts, access state. Identical to `GET /v1/usage-stats`. Existing integrations keep working unchanged. **With `range`, `granularity`, `from`, or `to`:** usage METERING — billed spend (USD) by product family (`accounts`, `numbers`, `calls`, `sms`, `dlc`, `xApi`, `credits`, `other`) over the window, at `day` / `month` / `total` granularity, from Metronome's invoice breakdown (the CHARGE view — always reconciles with what gets billed). Also served at `GET /v1/usage/daily`. Usage-based accounts only — legacy Stripe accounts get `{ \"supported\": false, \"days\": [] }`. **Attribution (metering mode):** `groupBy=profile|account` adds an `attribution` breakdown of the window's spend per profile or account, assembled from your own records and pro-rated against the invoice so `sum(groups) + unattributed` equals `totals` exactly. `profileId` / `accountId` instead project the whole payload (`days`, `totals`, `lineItems`) onto that one group; `peaks`, `callUsage` and `tax` are then `null` (workspace-level facts). Projected `days` spread the group's period share over each day (usage is attributed per period, not per day). Profile-scoped API keys and members only see their profiles' groups (`attribution.restricted: true`, with `totals` summing the visible groups). Credits, 10DLC fees and Verify are always unattributed. `profileId` / `accountId` on their own do not select metering mode: pair them with `range`. For per-domain consumption *volumes* use `GET /v1/usage/calls` and `GET /v1/usage/sms`. For the billing statement (balance, credits, caps, payment status) use `GET /v1/billing`.
80
80
  # @param [Hash] opts the optional parameters
81
81
  # @option opts [Boolean] :reconcile Snapshot mode only. For Stripe subscription users, `true` forces a subscription reconciliation pass even when cached plan data looks complete.
82
82
  # @option opts [String] :range Window to report. `cycle` / `prev-cycle` resolve to the customer's real billing-period bounds (falling back to a trailing 30 days when no invoice exists yet); `7d`…`12mo` are trailing windows; `custom` uses `from` / `to`.
83
83
  # @option opts [Date] :from Inclusive start (UTC date). Required when `range=custom`.
84
84
  # @option opts [Date] :to Inclusive end (UTC date). Required when `range=custom`. Max span 366 days.
85
85
  # @option opts [String] :granularity Bucketing of the `days` series: `day` (one row per UTC day), `month` (one row per calendar month, dated to the 1st), or `total` (no series — read `totals`). Does not affect `totals`.
86
+ # @option opts [String] :group_by Metering mode. Adds `attribution`: the window's spend split per profile or per account (keys are ids; resolve names via `GET /v1/profiles` / `GET /v1/accounts`).
87
+ # @option opts [String] :profile_id Metering mode (pair with `range`). Project the payload onto this profile's attributed share. Mutually exclusive with `accountId`, and `groupBy` (if given) must be `profile`; 404 when the profile is not in your workspace (or outside a scoped key's profiles).
88
+ # @option opts [String] :account_id Metering mode (pair with `range`). Project the payload onto this account's attributed share. Mutually exclusive with `profileId`, and `groupBy` (if given) must be `account`; 404 when the account is not visible to the caller.
86
89
  # @return [GetUsage200Response]
87
90
  describe 'get_usage test' do
88
91
  it 'should work' do
@@ -0,0 +1,36 @@
1
+ =begin
2
+ #Zernio API
3
+
4
+ #API reference for Zernio. Authenticate with a Bearer API key. Base URL: https://zernio.com/api Versioning and deprecation: all endpoints are versioned in the URL path (current version: /v1). Breaking changes only ship in a new path version; existing versions keep working. Deprecated operations are marked 'deprecated: true' in this spec and announced in the changelog (https://zernio.com/changelog) before removal. Errors: every 4xx/5xx response is application/json with a machine-readable 'code' and a human-readable 'error' message (see the ErrorResponse schema).
5
+
6
+ The version of the OpenAPI document: 1.0.4
7
+ Contact: support@zernio.com
8
+ Generated by: https://openapi-generator.tech
9
+ Generator version: 7.19.0
10
+
11
+ =end
12
+
13
+ require 'spec_helper'
14
+ require 'json'
15
+ require 'date'
16
+
17
+ # Unit tests for Zernio::CreatePhoneNumberStockWatchRequest
18
+ # Automatically generated by openapi-generator (https://openapi-generator.tech)
19
+ # Please update as you see appropriate
20
+ describe Zernio::CreatePhoneNumberStockWatchRequest do
21
+ #let(:instance) { Zernio::CreatePhoneNumberStockWatchRequest.new }
22
+
23
+ describe 'test an instance of CreatePhoneNumberStockWatchRequest' do
24
+ it 'should create an instance of CreatePhoneNumberStockWatchRequest' do
25
+ # uncomment below to test the instance creation
26
+ #expect(instance).to be_instance_of(Zernio::CreatePhoneNumberStockWatchRequest)
27
+ end
28
+ end
29
+
30
+ describe 'test attribute "country"' do
31
+ it 'should work' do
32
+ # assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/
33
+ end
34
+ end
35
+
36
+ end
@@ -48,7 +48,7 @@ describe Zernio::CreateWebhookSettingsRequest do
48
48
  describe 'test attribute "events"' do
49
49
  it 'should work' do
50
50
  # assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/
51
- # validator = Petstore::EnumTest::EnumAttributeValidator.new('Array<String>', ["post.scheduled", "post.published", "post.failed", "post.partial", "post.cancelled", "post.recycled", "post.platform.published", "post.platform.failed", "post.platform.deleted", "post.tiktok.url_resolved", "post.external.created", "post.external.updated", "post.external.deleted", "account.connected", "account.disconnected", "account.ads.initial_sync_completed", "message.received", "conversation.started", "call.received", "call.ended", "call.failed", "call.permission_request", "message.sent", "message.edited", "message.deleted", "message.delivered", "message.read", "message.failed", "reaction.received", "referral.received", "comment.received", "review.new", "review.updated", "lead.received", "ad.status_changed", "whatsapp.template.status_updated", "whatsapp.template.category_updated", "whatsapp.account.name_status_updated", "whatsapp.automatic_event", "whatsapp.number.activated", "whatsapp.number.declined", "whatsapp.number.action_required", "whatsapp.number.verification_required", "whatsapp.number.suspended", "whatsapp.number.reactivated", "whatsapp.number.released", "whatsapp.number.kyc_submitted", "verification.approved", "verification.failed"])
51
+ # validator = Petstore::EnumTest::EnumAttributeValidator.new('Array<String>', ["post.scheduled", "post.published", "post.failed", "post.partial", "post.cancelled", "post.recycled", "post.platform.published", "post.platform.failed", "post.platform.deleted", "post.tiktok.url_resolved", "post.external.created", "post.external.updated", "post.external.deleted", "account.connected", "account.disconnected", "account.ads.initial_sync_completed", "message.received", "conversation.started", "call.received", "call.ended", "call.failed", "call.permission_request", "message.sent", "message.edited", "message.deleted", "message.delivered", "message.read", "message.failed", "reaction.received", "referral.received", "comment.received", "review.new", "review.updated", "lead.received", "ad.status_changed", "whatsapp.template.status_updated", "whatsapp.template.category_updated", "whatsapp.account.name_status_updated", "whatsapp.automatic_event", "whatsapp.number.activated", "whatsapp.number.declined", "whatsapp.number.action_required", "whatsapp.number.verification_required", "whatsapp.number.suspended", "whatsapp.number.reactivated", "whatsapp.number.released", "whatsapp.number.kyc_submitted", "phone_number.stock_available", "verification.approved", "verification.failed"])
52
52
  # validator.allowable_values.each do |value|
53
53
  # expect { instance.events = value }.not_to raise_error
54
54
  # end
@@ -0,0 +1,36 @@
1
+ =begin
2
+ #Zernio API
3
+
4
+ #API reference for Zernio. Authenticate with a Bearer API key. Base URL: https://zernio.com/api Versioning and deprecation: all endpoints are versioned in the URL path (current version: /v1). Breaking changes only ship in a new path version; existing versions keep working. Deprecated operations are marked 'deprecated: true' in this spec and announced in the changelog (https://zernio.com/changelog) before removal. Errors: every 4xx/5xx response is application/json with a machine-readable 'code' and a human-readable 'error' message (see the ErrorResponse schema).
5
+
6
+ The version of the OpenAPI document: 1.0.4
7
+ Contact: support@zernio.com
8
+ Generated by: https://openapi-generator.tech
9
+ Generator version: 7.19.0
10
+
11
+ =end
12
+
13
+ require 'spec_helper'
14
+ require 'json'
15
+ require 'date'
16
+
17
+ # Unit tests for Zernio::ListPhoneNumberStockWatches200Response
18
+ # Automatically generated by openapi-generator (https://openapi-generator.tech)
19
+ # Please update as you see appropriate
20
+ describe Zernio::ListPhoneNumberStockWatches200Response do
21
+ #let(:instance) { Zernio::ListPhoneNumberStockWatches200Response.new }
22
+
23
+ describe 'test an instance of ListPhoneNumberStockWatches200Response' do
24
+ it 'should create an instance of ListPhoneNumberStockWatches200Response' do
25
+ # uncomment below to test the instance creation
26
+ #expect(instance).to be_instance_of(Zernio::ListPhoneNumberStockWatches200Response)
27
+ end
28
+ end
29
+
30
+ describe 'test attribute "watches"' do
31
+ it 'should work' do
32
+ # assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/
33
+ end
34
+ end
35
+
36
+ end
@@ -0,0 +1,54 @@
1
+ =begin
2
+ #Zernio API
3
+
4
+ #API reference for Zernio. Authenticate with a Bearer API key. Base URL: https://zernio.com/api Versioning and deprecation: all endpoints are versioned in the URL path (current version: /v1). Breaking changes only ship in a new path version; existing versions keep working. Deprecated operations are marked 'deprecated: true' in this spec and announced in the changelog (https://zernio.com/changelog) before removal. Errors: every 4xx/5xx response is application/json with a machine-readable 'code' and a human-readable 'error' message (see the ErrorResponse schema).
5
+
6
+ The version of the OpenAPI document: 1.0.4
7
+ Contact: support@zernio.com
8
+ Generated by: https://openapi-generator.tech
9
+ Generator version: 7.19.0
10
+
11
+ =end
12
+
13
+ require 'spec_helper'
14
+ require 'json'
15
+ require 'date'
16
+
17
+ # Unit tests for Zernio::PhoneNumberStockWatch
18
+ # Automatically generated by openapi-generator (https://openapi-generator.tech)
19
+ # Please update as you see appropriate
20
+ describe Zernio::PhoneNumberStockWatch do
21
+ #let(:instance) { Zernio::PhoneNumberStockWatch.new }
22
+
23
+ describe 'test an instance of PhoneNumberStockWatch' do
24
+ it 'should create an instance of PhoneNumberStockWatch' do
25
+ # uncomment below to test the instance creation
26
+ #expect(instance).to be_instance_of(Zernio::PhoneNumberStockWatch)
27
+ end
28
+ end
29
+
30
+ describe 'test attribute "id"' do
31
+ it 'should work' do
32
+ # assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/
33
+ end
34
+ end
35
+
36
+ describe 'test attribute "country"' do
37
+ it 'should work' do
38
+ # assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/
39
+ end
40
+ end
41
+
42
+ describe 'test attribute "country_name"' do
43
+ it 'should work' do
44
+ # assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/
45
+ end
46
+ end
47
+
48
+ describe 'test attribute "created_at"' do
49
+ it 'should work' do
50
+ # assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/
51
+ end
52
+ end
53
+
54
+ end
@@ -54,7 +54,7 @@ describe Zernio::UpdateWebhookSettingsRequest do
54
54
  describe 'test attribute "events"' do
55
55
  it 'should work' do
56
56
  # assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/
57
- # validator = Petstore::EnumTest::EnumAttributeValidator.new('Array<String>', ["post.scheduled", "post.published", "post.failed", "post.partial", "post.cancelled", "post.recycled", "post.platform.published", "post.platform.failed", "post.platform.deleted", "post.tiktok.url_resolved", "post.external.created", "post.external.updated", "post.external.deleted", "account.connected", "account.disconnected", "account.ads.initial_sync_completed", "message.received", "conversation.started", "call.received", "call.ended", "call.failed", "call.permission_request", "message.sent", "message.edited", "message.deleted", "message.delivered", "message.read", "message.failed", "reaction.received", "referral.received", "comment.received", "review.new", "review.updated", "lead.received", "ad.status_changed", "whatsapp.template.status_updated", "whatsapp.template.category_updated", "whatsapp.account.name_status_updated", "whatsapp.automatic_event", "whatsapp.number.activated", "whatsapp.number.declined", "whatsapp.number.action_required", "whatsapp.number.verification_required", "whatsapp.number.suspended", "whatsapp.number.reactivated", "whatsapp.number.released", "whatsapp.number.kyc_submitted", "verification.approved", "verification.failed"])
57
+ # validator = Petstore::EnumTest::EnumAttributeValidator.new('Array<String>', ["post.scheduled", "post.published", "post.failed", "post.partial", "post.cancelled", "post.recycled", "post.platform.published", "post.platform.failed", "post.platform.deleted", "post.tiktok.url_resolved", "post.external.created", "post.external.updated", "post.external.deleted", "account.connected", "account.disconnected", "account.ads.initial_sync_completed", "message.received", "conversation.started", "call.received", "call.ended", "call.failed", "call.permission_request", "message.sent", "message.edited", "message.deleted", "message.delivered", "message.read", "message.failed", "reaction.received", "referral.received", "comment.received", "review.new", "review.updated", "lead.received", "ad.status_changed", "whatsapp.template.status_updated", "whatsapp.template.category_updated", "whatsapp.account.name_status_updated", "whatsapp.automatic_event", "whatsapp.number.activated", "whatsapp.number.declined", "whatsapp.number.action_required", "whatsapp.number.verification_required", "whatsapp.number.suspended", "whatsapp.number.reactivated", "whatsapp.number.released", "whatsapp.number.kyc_submitted", "phone_number.stock_available", "verification.approved", "verification.failed"])
58
58
  # validator.allowable_values.each do |value|
59
59
  # expect { instance.events = value }.not_to raise_error
60
60
  # end