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.
- checksums.yaml +4 -4
- data/README.md +15 -0
- data/docs/CreatePhoneNumberStockWatchRequest.md +18 -0
- data/docs/ListPhoneNumberStockWatches200Response.md +18 -0
- data/docs/PhoneNumberStockWatch.md +24 -0
- data/docs/PhoneNumbersApi.md +203 -0
- data/docs/UsageApi.md +8 -2
- data/docs/UsageAttributionGroup.md +22 -0
- data/docs/UsageAttributionSlice.md +20 -0
- data/docs/UsageAttributionSliceByProduct.md +34 -0
- data/docs/UsageMetering.md +5 -1
- data/docs/UsageMeteringAttribution.md +26 -0
- data/docs/UsageMeteringScope.md +49 -0
- data/docs/UsageMeteringScopeOneOf.md +18 -0
- data/docs/WebhookEventsApi.md +69 -0
- data/docs/WebhookPayloadPhoneNumberStockAvailable.md +24 -0
- data/docs/WebhookPayloadPhoneNumberStockAvailableStock.md +20 -0
- data/docs/WebhookPayloadPhoneNumberStockAvailableStockTypesInner.md +20 -0
- data/lib/zernio-sdk/api/phone_numbers_api.rb +184 -0
- data/lib/zernio-sdk/api/usage_api.rb +15 -2
- data/lib/zernio-sdk/api/webhook_events_api.rb +66 -0
- data/lib/zernio-sdk/models/create_phone_number_stock_watch_request.rb +183 -0
- data/lib/zernio-sdk/models/list_phone_number_stock_watches200_response.rb +149 -0
- data/lib/zernio-sdk/models/phone_number_stock_watch.rb +243 -0
- data/lib/zernio-sdk/models/usage_attribution_group.rb +190 -0
- data/lib/zernio-sdk/models/usage_attribution_slice.rb +156 -0
- data/lib/zernio-sdk/models/usage_attribution_slice_by_product.rb +220 -0
- data/lib/zernio-sdk/models/usage_metering.rb +22 -4
- data/lib/zernio-sdk/models/usage_metering_attribution.rb +223 -0
- data/lib/zernio-sdk/models/usage_metering_call_usage.rb +1 -1
- data/lib/zernio-sdk/models/usage_metering_peaks.rb +1 -1
- data/lib/zernio-sdk/models/usage_metering_scope.rb +105 -0
- data/lib/zernio-sdk/models/usage_metering_scope_one_of.rb +164 -0
- data/lib/zernio-sdk/models/webhook_payload_phone_number_stock_available.rb +269 -0
- data/lib/zernio-sdk/models/webhook_payload_phone_number_stock_available_stock.rb +194 -0
- data/lib/zernio-sdk/models/webhook_payload_phone_number_stock_available_stock_types_inner.rb +192 -0
- data/lib/zernio-sdk/version.rb +1 -1
- data/lib/zernio-sdk.rb +12 -0
- data/openapi.yaml +236 -8
- data/spec/api/phone_numbers_api_spec.rb +33 -0
- data/spec/api/usage_api_spec.rb +4 -1
- data/spec/models/create_phone_number_stock_watch_request_spec.rb +36 -0
- data/spec/models/create_webhook_settings_request_spec.rb +1 -1
- data/spec/models/list_phone_number_stock_watches200_response_spec.rb +36 -0
- data/spec/models/phone_number_stock_watch_spec.rb +54 -0
- data/spec/models/update_webhook_settings_request_spec.rb +1 -1
- data/spec/models/usage_attribution_group_spec.rb +48 -0
- data/spec/models/usage_attribution_slice_by_product_spec.rb +84 -0
- data/spec/models/usage_attribution_slice_spec.rb +42 -0
- data/spec/models/usage_metering_attribution_spec.rb +64 -0
- data/spec/models/usage_metering_scope_one_of_spec.rb +36 -0
- data/spec/models/usage_metering_scope_spec.rb +32 -0
- data/spec/models/usage_metering_spec.rb +12 -0
- data/spec/models/webhook_payload_phone_number_stock_available_spec.rb +58 -0
- data/spec/models/webhook_payload_phone_number_stock_available_stock_spec.rb +42 -0
- data/spec/models/webhook_payload_phone_number_stock_available_stock_types_inner_spec.rb +42 -0
- data/spec/models/webhook_spec.rb +1 -1
- data/zernio-sdk-0.0.784.gem +0 -0
- metadata +50 -2
- 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.
|
data/spec/api/usage_api_spec.rb
CHANGED
|
@@ -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
|