bandwidth-sdk 14.0.0 → 14.1.1

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 (93) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile.lock +10 -10
  3. data/README.md +42 -10
  4. data/bandwidth.yml +1113 -0
  5. data/coverage/.last_run.json +1 -1
  6. data/coverage/.resultset.json +1204 -231
  7. data/coverage/index.html +20499 -10053
  8. data/custom_templates/README.mustache +6 -6
  9. data/docs/AdditionalDenialReason.md +22 -0
  10. data/docs/Address.md +30 -0
  11. data/docs/Contact.md +24 -0
  12. data/docs/Error.md +22 -0
  13. data/docs/FailureWebhook.md +28 -0
  14. data/docs/InitiateCallback.md +3 -1
  15. data/docs/LinksObject.md +24 -0
  16. data/docs/OptInWorkflow.md +20 -0
  17. data/docs/TelephoneNumber.md +18 -0
  18. data/docs/TfvBasicAuthentication.md +20 -0
  19. data/docs/{PublishPermissionsEnum.md → TfvCallbackStatusEnum.md} +2 -2
  20. data/docs/TfvError.md +22 -0
  21. data/docs/TfvStatus.md +32 -0
  22. data/docs/{DeviceApiVersionEnum.md → TfvStatusEnum.md} +2 -2
  23. data/docs/TfvSubmissionInfo.md +34 -0
  24. data/docs/TfvSubmissionWrapper.md +18 -0
  25. data/docs/TollFreeVerificationApi.md +585 -0
  26. data/docs/VerificationDenialWebhook.md +32 -0
  27. data/docs/VerificationRequest.md +36 -0
  28. data/docs/VerificationUpdateRequest.md +34 -0
  29. data/docs/VerificationWebhook.md +24 -0
  30. data/docs/WebhookSubscription.md +30 -0
  31. data/docs/WebhookSubscriptionBasicAuthentication.md +20 -0
  32. data/docs/WebhookSubscriptionRequestSchema.md +22 -0
  33. data/docs/WebhookSubscriptionTypeEnum.md +15 -0
  34. data/docs/WebhookSubscriptionsListBody.md +22 -0
  35. data/lib/bandwidth-sdk/api/toll_free_verification_api.rb +614 -0
  36. data/lib/bandwidth-sdk/configuration.rb +48 -0
  37. data/lib/bandwidth-sdk/models/additional_denial_reason.rb +254 -0
  38. data/lib/bandwidth-sdk/models/address.rb +501 -0
  39. data/lib/bandwidth-sdk/models/contact.rb +393 -0
  40. data/lib/bandwidth-sdk/models/error.rb +232 -0
  41. data/lib/bandwidth-sdk/models/failure_webhook.rb +304 -0
  42. data/lib/bandwidth-sdk/models/initiate_callback.rb +33 -4
  43. data/lib/bandwidth-sdk/models/links_object.rb +243 -0
  44. data/lib/bandwidth-sdk/models/opt_in_workflow.rb +265 -0
  45. data/lib/bandwidth-sdk/models/telephone_number.rb +213 -0
  46. data/lib/bandwidth-sdk/models/tfv_basic_authentication.rb +273 -0
  47. data/lib/bandwidth-sdk/models/tfv_callback_status_enum.rb +40 -0
  48. data/lib/bandwidth-sdk/models/tfv_error.rb +232 -0
  49. data/lib/bandwidth-sdk/models/tfv_status.rb +342 -0
  50. data/lib/bandwidth-sdk/models/tfv_status_enum.rb +43 -0
  51. data/lib/bandwidth-sdk/models/tfv_submission_info.rb +452 -0
  52. data/lib/bandwidth-sdk/models/tfv_submission_wrapper.rb +212 -0
  53. data/lib/bandwidth-sdk/models/verification_denial_webhook.rb +325 -0
  54. data/lib/bandwidth-sdk/models/verification_request.rb +547 -0
  55. data/lib/bandwidth-sdk/models/verification_update_request.rb +501 -0
  56. data/lib/bandwidth-sdk/models/verification_webhook.rb +303 -0
  57. data/lib/bandwidth-sdk/models/webhook_subscription.rb +328 -0
  58. data/lib/bandwidth-sdk/models/webhook_subscription_basic_authentication.rb +274 -0
  59. data/lib/bandwidth-sdk/models/webhook_subscription_request_schema.rb +306 -0
  60. data/lib/bandwidth-sdk/models/webhook_subscription_type_enum.rb +40 -0
  61. data/lib/bandwidth-sdk/models/webhook_subscriptions_list_body.rb +242 -0
  62. data/lib/bandwidth-sdk/version.rb +1 -1
  63. data/lib/bandwidth-sdk.rb +25 -0
  64. data/openapi-config.yml +1 -1
  65. data/spec/call_utils.rb +2 -2
  66. data/spec/smoke/toll_free_verification_api_spec.rb +69 -0
  67. data/spec/spec_helper.rb +1 -1
  68. data/spec/unit/api/mfa_api_spec.rb +1 -1
  69. data/spec/unit/api/toll_free_verification_api_spec.rb +278 -0
  70. data/spec/unit/client/api_client_spec.rb +1 -1
  71. metadata +91 -61
  72. data/docs/CreateParticipantRequest.md +0 -24
  73. data/docs/CreateParticipantResponse.md +0 -20
  74. data/docs/DisconenctCallback.md +0 -50
  75. data/docs/ForbiddenRequest.md +0 -18
  76. data/docs/InboundMessageCallback.md +0 -26
  77. data/docs/InboundMessageCallbackMessage.md +0 -40
  78. data/docs/MessageDeliveredCallback.md +0 -26
  79. data/docs/MessageDeliveredCallbackMessage.md +0 -40
  80. data/docs/MessageFailedCallback.md +0 -28
  81. data/docs/MessageFailedCallbackMessage.md +0 -40
  82. data/docs/MessageSendingCallback.md +0 -26
  83. data/docs/MessageSendingCallbackMessage.md +0 -40
  84. data/docs/Participant.md +0 -30
  85. data/docs/ParticipantSubscription.md +0 -20
  86. data/docs/ParticipantsApi.md +0 -227
  87. data/docs/RequestError.md +0 -20
  88. data/docs/Session.md +0 -20
  89. data/docs/SessionsApi.md +0 -605
  90. data/docs/Subscriptions.md +0 -20
  91. data/docs/TranscriptionList.md +0 -18
  92. data/docs/TranscriptionMetadata.md +0 -24
  93. data/docs/UnauthorizedRequest.md +0 -18
data/bandwidth.yml CHANGED
@@ -19,6 +19,7 @@ tags:
19
19
  - name: Transcriptions
20
20
  - name: MFA
21
21
  - name: Phone Number Lookup
22
+ - name: Toll-Free Verification
22
23
  paths:
23
24
  /users/{accountId}/media:
24
25
  get:
@@ -1328,6 +1329,270 @@ paths:
1328
1329
  '500':
1329
1330
  $ref: '#/components/responses/tnLookupInternalServerError'
1330
1331
  servers: *ref_3
1332
+ /accounts/{accountId}/tollFreeVerification:
1333
+ post:
1334
+ tags:
1335
+ - Toll-Free Verification
1336
+ summary: Request Toll-Free Verification
1337
+ description: Submit a request for verification of a toll-free phone number.
1338
+ operationId: requestTollFreeVerification
1339
+ parameters:
1340
+ - $ref: '#/components/parameters/accountId'
1341
+ requestBody:
1342
+ $ref: '#/components/requestBodies/requestTollFreeVerificationRequest'
1343
+ responses:
1344
+ '202':
1345
+ description: Accepted
1346
+ '400':
1347
+ $ref: '#/components/responses/tfvPostBadRequestResponse'
1348
+ '401':
1349
+ $ref: '#/components/responses/tfvUnauthorizedResponse'
1350
+ '403':
1351
+ $ref: '#/components/responses/tfvForbiddenResponse'
1352
+ '405':
1353
+ $ref: '#/components/responses/tfvNotAllowedResponse'
1354
+ '429':
1355
+ $ref: '#/components/responses/tfvTooManyRequestsResponse'
1356
+ '500':
1357
+ $ref: '#/components/responses/tfvServerErrorResponse'
1358
+ '503':
1359
+ $ref: '#/components/responses/tfvServiceUnavailableResponse'
1360
+ callbacks:
1361
+ tfVerificationStatus:
1362
+ $ref: '#/components/callbacks/tfVerificationStatus'
1363
+ servers: &ref_4
1364
+ - url: https://api.bandwidth.com/api/v2
1365
+ description: Production
1366
+ /accounts/{accountId}/phoneNumbers/{phoneNumber}/tollFreeVerification:
1367
+ get:
1368
+ tags:
1369
+ - Toll-Free Verification
1370
+ summary: Get Toll-Free Verification Status
1371
+ description: >-
1372
+ Gets the verification status for a phone number that is provisioned to
1373
+ your account.
1374
+
1375
+ Submission information will be appended to the response if it is
1376
+ available.
1377
+ operationId: getTollFreeVerificationStatus
1378
+ parameters:
1379
+ - $ref: '#/components/parameters/accountId'
1380
+ - $ref: '#/components/parameters/tfPhoneNumberPathParam'
1381
+ responses:
1382
+ '200':
1383
+ $ref: '#/components/responses/getTollFreeVerificationStatusResponse'
1384
+ '400':
1385
+ $ref: '#/components/responses/tfvBadRequestResponse'
1386
+ '401':
1387
+ $ref: '#/components/responses/tfvUnauthorizedResponse'
1388
+ '403':
1389
+ $ref: '#/components/responses/tfvForbiddenResponse'
1390
+ '404':
1391
+ $ref: '#/components/responses/tfvNotFoundResponse'
1392
+ '405':
1393
+ $ref: '#/components/responses/tfvNotAllowedResponse'
1394
+ '429':
1395
+ $ref: '#/components/responses/tfvTooManyRequestsResponse'
1396
+ '500':
1397
+ $ref: '#/components/responses/tfvServerErrorResponse'
1398
+ '503':
1399
+ $ref: '#/components/responses/tfvServiceUnavailableResponse'
1400
+ put:
1401
+ tags:
1402
+ - Toll-Free Verification
1403
+ summary: Update Toll-Free Verification Request
1404
+ description: >-
1405
+ Updates a toll-free verification request.
1406
+
1407
+ Submissions are only eligible for resubmission for 7 days within being
1408
+ processed and if resubmission is allowed (resubmitAllowed field is
1409
+ true).
1410
+ operationId: updateTollFreeVerificationRequest
1411
+ parameters:
1412
+ - $ref: '#/components/parameters/accountId'
1413
+ - $ref: '#/components/parameters/tfPhoneNumberPathParam'
1414
+ requestBody:
1415
+ $ref: '#/components/requestBodies/updateTollFreeVerificationRequestRequest'
1416
+ responses:
1417
+ '202':
1418
+ description: Accepted
1419
+ '400':
1420
+ $ref: '#/components/responses/tfvPostBadRequestResponse'
1421
+ '401':
1422
+ $ref: '#/components/responses/tfvUnauthorizedResponse'
1423
+ '403':
1424
+ $ref: '#/components/responses/tfvForbiddenResponse'
1425
+ '405':
1426
+ $ref: '#/components/responses/tfvNotAllowedResponse'
1427
+ '429':
1428
+ $ref: '#/components/responses/tfvTooManyRequestsResponse'
1429
+ '500':
1430
+ $ref: '#/components/responses/tfvServerErrorResponse'
1431
+ '503':
1432
+ $ref: '#/components/responses/tfvServiceUnavailableResponse'
1433
+ callbacks:
1434
+ tfVerificationStatus:
1435
+ $ref: '#/components/callbacks/tfVerificationStatus'
1436
+ servers: *ref_4
1437
+ /accounts/{accountId}/tollFreeVerification/webhooks/subscriptions:
1438
+ get:
1439
+ tags:
1440
+ - Toll-Free Verification
1441
+ summary: List Webhook Subscriptions
1442
+ description: >-
1443
+ Lists all webhook subscriptions that are registered to receive status
1444
+ updates for the toll-free verification requests submitted under this
1445
+ account (password will not be returned through this API
1446
+
1447
+ If `basicAuthentication` is defined, the `password` property of that
1448
+ object will be null).
1449
+ operationId: listWebhookSubscriptions
1450
+ parameters:
1451
+ - $ref: '#/components/parameters/accountId'
1452
+ responses:
1453
+ '200':
1454
+ $ref: '#/components/responses/listWebhookSubscriptionsResponse'
1455
+ '400':
1456
+ $ref: '#/components/responses/tfvPostBadRequestResponse'
1457
+ '401':
1458
+ $ref: '#/components/responses/tfvUnauthorizedResponse'
1459
+ '403':
1460
+ $ref: '#/components/responses/tfvForbiddenResponse'
1461
+ '405':
1462
+ $ref: '#/components/responses/tfvNotAllowedResponse'
1463
+ '429':
1464
+ $ref: '#/components/responses/tfvTooManyRequestsResponse'
1465
+ '500':
1466
+ $ref: '#/components/responses/tfvServerErrorResponse'
1467
+ '503':
1468
+ $ref: '#/components/responses/tfvServiceUnavailableResponse'
1469
+ post:
1470
+ tags:
1471
+ - Toll-Free Verification
1472
+ summary: Create Webhook Subscription
1473
+ description: >-
1474
+ Create a new webhook subscription (this webhook will be called for every
1475
+ update on every submission).
1476
+
1477
+ In addition to a `callbackUrl`, this subscription can provide optional
1478
+ HTTP basic authentication credentials (a username and a password).
1479
+
1480
+ The returned subscription object will contain an ID that can be used to
1481
+ modify or delete the subscription at a later time.
1482
+ operationId: createWebhookSubscription
1483
+ parameters:
1484
+ - $ref: '#/components/parameters/accountId'
1485
+ requestBody:
1486
+ $ref: '#/components/requestBodies/webhookSubscriptionRequest'
1487
+ responses:
1488
+ '201':
1489
+ $ref: '#/components/responses/createWebhookSubscriptionResponse'
1490
+ '400':
1491
+ $ref: '#/components/responses/tfvBadRequestResponse'
1492
+ '401':
1493
+ $ref: '#/components/responses/tfvUnauthorizedResponse'
1494
+ '403':
1495
+ $ref: '#/components/responses/tfvForbiddenResponse'
1496
+ '404':
1497
+ $ref: '#/components/responses/tfvNotFoundResponse'
1498
+ '405':
1499
+ $ref: '#/components/responses/tfvNotAllowedResponse'
1500
+ '429':
1501
+ $ref: '#/components/responses/tfvTooManyRequestsResponse'
1502
+ '500':
1503
+ $ref: '#/components/responses/tfvServerErrorResponse'
1504
+ '503':
1505
+ $ref: '#/components/responses/tfvServiceUnavailableResponse'
1506
+ servers: *ref_4
1507
+ /accounts/{accountId}/tollFreeVerification/webhooks/subscriptions/{id}:
1508
+ delete:
1509
+ tags:
1510
+ - Toll-Free Verification
1511
+ summary: Delete Webhook Subscription
1512
+ description: Delete a webhook subscription by ID.
1513
+ operationId: deleteWebhookSubscription
1514
+ parameters:
1515
+ - $ref: '#/components/parameters/accountId'
1516
+ - $ref: '#/components/parameters/webhookSubscriptionIdPathParam'
1517
+ responses:
1518
+ '204':
1519
+ description: No Content
1520
+ '400':
1521
+ $ref: '#/components/responses/tfvBadRequestResponse'
1522
+ '401':
1523
+ $ref: '#/components/responses/tfvUnauthorizedResponse'
1524
+ '403':
1525
+ $ref: '#/components/responses/tfvForbiddenResponse'
1526
+ '404':
1527
+ $ref: '#/components/responses/tfvNotFoundResponse'
1528
+ '405':
1529
+ $ref: '#/components/responses/tfvNotAllowedResponse'
1530
+ '429':
1531
+ $ref: '#/components/responses/tfvTooManyRequestsResponse'
1532
+ '500':
1533
+ $ref: '#/components/responses/tfvServerErrorResponse'
1534
+ '503':
1535
+ $ref: '#/components/responses/tfvServiceUnavailableResponse'
1536
+ put:
1537
+ tags:
1538
+ - Toll-Free Verification
1539
+ summary: Update Webhook Subscription
1540
+ description: >-
1541
+ Update an existing webhook subscription (`callbackUrl` and
1542
+ `basicAuthentication` can be updated).
1543
+ operationId: updateWebhookSubscription
1544
+ parameters:
1545
+ - $ref: '#/components/parameters/accountId'
1546
+ - $ref: '#/components/parameters/webhookSubscriptionIdPathParam'
1547
+ requestBody:
1548
+ $ref: '#/components/requestBodies/webhookSubscriptionRequest'
1549
+ responses:
1550
+ '200':
1551
+ $ref: '#/components/responses/updateWebhookSubscriptionResponse'
1552
+ '400':
1553
+ $ref: '#/components/responses/tfvBadRequestResponse'
1554
+ '401':
1555
+ $ref: '#/components/responses/tfvUnauthorizedResponse'
1556
+ '403':
1557
+ $ref: '#/components/responses/tfvForbiddenResponse'
1558
+ '404':
1559
+ $ref: '#/components/responses/tfvNotFoundResponse'
1560
+ '405':
1561
+ $ref: '#/components/responses/tfvNotAllowedResponse'
1562
+ '429':
1563
+ $ref: '#/components/responses/tfvTooManyRequestsResponse'
1564
+ '500':
1565
+ $ref: '#/components/responses/tfvServerErrorResponse'
1566
+ '503':
1567
+ $ref: '#/components/responses/tfvServiceUnavailableResponse'
1568
+ servers: *ref_4
1569
+ /tollFreeVerification/useCases:
1570
+ get:
1571
+ tags:
1572
+ - Toll-Free Verification
1573
+ summary: List Toll-Free Use Cases
1574
+ description: Lists valid toll-free use cases.
1575
+ operationId: listTollFreeUseCases
1576
+ responses:
1577
+ '200':
1578
+ $ref: '#/components/responses/listTollFreeUseCasesResponse'
1579
+ '400':
1580
+ $ref: '#/components/responses/tfvBadRequestResponse'
1581
+ '401':
1582
+ $ref: '#/components/responses/tfvUnauthorizedResponse'
1583
+ '403':
1584
+ $ref: '#/components/responses/tfvForbiddenResponse'
1585
+ '404':
1586
+ $ref: '#/components/responses/tfvNotFoundResponse'
1587
+ '405':
1588
+ $ref: '#/components/responses/tfvNotAllowedResponse'
1589
+ '429':
1590
+ $ref: '#/components/responses/tfvTooManyRequestsResponse'
1591
+ '500':
1592
+ $ref: '#/components/responses/tfvServerErrorResponse'
1593
+ '503':
1594
+ $ref: '#/components/responses/tfvServiceUnavailableResponse'
1595
+ servers: *ref_4
1331
1596
  components:
1332
1597
  schemas:
1333
1598
  callbackTypeEnum:
@@ -3536,6 +3801,8 @@ components:
3536
3801
  $ref: '#/components/schemas/diversion'
3537
3802
  stirShaken:
3538
3803
  $ref: '#/components/schemas/stirShaken'
3804
+ uui:
3805
+ $ref: '#/components/schemas/uui'
3539
3806
  machineDetectionCompleteCallback:
3540
3807
  type: object
3541
3808
  description: >-
@@ -4170,6 +4437,15 @@ components:
4170
4437
  type: string
4171
4438
  description: (optional) A unique origination identifier.
4172
4439
  example: 99759086-1335-11ed-9bcf-5f7d464e91af
4440
+ uui:
4441
+ type: string
4442
+ description: >-
4443
+ The value of the `User-To-User` header to send within the initial
4444
+ `INVITE`. Must include the encoding parameter as specified in RFC 7433.
4445
+ Only `base64`, `jwt` and `hex` encoding are currently allowed. This
4446
+ value, including the encoding specifier, may not exceed 256 characters.
4447
+ example: bXktdXVp
4448
+ maxLength: 256
4173
4449
  codeRequest:
4174
4450
  type: object
4175
4451
  properties:
@@ -4410,6 +4686,640 @@ components:
4410
4686
  type: string
4411
4687
  description: A description of what validation error occurred.
4412
4688
  example: example error message
4689
+ accountId1:
4690
+ type: string
4691
+ description: User's account ID.
4692
+ example: '1234567'
4693
+ tfPhoneNumber:
4694
+ type: string
4695
+ description: Toll-free telephone number in E.164 format.
4696
+ minLength: 12
4697
+ maxLength: 12
4698
+ nullable: false
4699
+ pattern: ^\+1(800|833|844|855|866|877|888)[2-9]\d{6}$
4700
+ example: '+18005555555'
4701
+ tfvWebhookErrors:
4702
+ type: array
4703
+ description: Details of the errors that were encountered when processing the request.
4704
+ items:
4705
+ type: string
4706
+ example: 'optInWorkflowImageURLs: Entries must be a valid array of objects.'
4707
+ tfvCallbackStatusEnum:
4708
+ type: string
4709
+ enum:
4710
+ - VERIFIED
4711
+ - UNVERIFIED
4712
+ example: VERIFIED
4713
+ tfvUnverifiedStatus:
4714
+ type: string
4715
+ default: UNVERIFIED
4716
+ example: UNVERIFIED
4717
+ declineReasonDescription:
4718
+ type: string
4719
+ description: Explanation for why a verification request was declined.
4720
+ nullable: false
4721
+ example: >-
4722
+ Invalid Information - Can't Validate URL - Website is not accessible /
4723
+ not available
4724
+ denialStatusCode:
4725
+ description: Reason code for denial.
4726
+ type: integer
4727
+ example: 511
4728
+ resubmitAllowed:
4729
+ description: >-
4730
+ Whether a Toll-Free Verification request qualifies for resubmission via
4731
+ PUT.
4732
+ example: true
4733
+ type: boolean
4734
+ additionalDenialReason:
4735
+ properties:
4736
+ statusCode:
4737
+ $ref: '#/components/schemas/denialStatusCode'
4738
+ reason:
4739
+ $ref: '#/components/schemas/declineReasonDescription'
4740
+ resubmitAllowed:
4741
+ $ref: '#/components/schemas/resubmitAllowed'
4742
+ required:
4743
+ - statusCode
4744
+ - reason
4745
+ - resubmitAllowed
4746
+ type: object
4747
+ internalTicketNumber:
4748
+ type: string
4749
+ format: uuid
4750
+ description: >-
4751
+ Unique identifier (UUID) generated by Bandwidth to assist in tracking
4752
+ the verification status of a toll-free number - included in all webhook
4753
+ payloads.
4754
+ example: acde070d-8c4c-4f0d-9d8a-162843c10333
4755
+ internalTicketNumberForWebhook:
4756
+ type: string
4757
+ format: uuid
4758
+ description: >-
4759
+ Unique identifier (UUID) generated by Bandwidth to assist in tracking
4760
+ the verification status of a toll-free number.
4761
+ example: acde070d-8c4c-4f0d-9d8a-162843c10333
4762
+ businessContactPhoneNumber:
4763
+ description: Contact telephone number
4764
+ type: string
4765
+ minLength: 1
4766
+ maxLength: 500
4767
+ nullable: false
4768
+ example: '+19192654500'
4769
+ verificationRequest:
4770
+ type: object
4771
+ required:
4772
+ - businessAddress
4773
+ - businessContact
4774
+ - messageVolume
4775
+ - phoneNumbers
4776
+ - useCase
4777
+ - useCaseSummary
4778
+ - productionMessageContent
4779
+ - optInWorkflow
4780
+ properties:
4781
+ businessAddress:
4782
+ $ref: '#/components/schemas/address'
4783
+ businessContact:
4784
+ $ref: '#/components/schemas/contact'
4785
+ messageVolume:
4786
+ type: integer
4787
+ description: Estimated monthly volume of messages from the toll-free number.
4788
+ minimum: 10
4789
+ maximum: 10000000
4790
+ example: 10000
4791
+ phoneNumbers:
4792
+ type: array
4793
+ minItems: 1
4794
+ maxItems: 10
4795
+ items:
4796
+ $ref: '#/components/schemas/tfPhoneNumber'
4797
+ useCase:
4798
+ $ref: '#/components/schemas/useCase'
4799
+ useCaseSummary:
4800
+ type: string
4801
+ description: A general idea of the use case and customer.
4802
+ minLength: 1
4803
+ maxLength: 500
4804
+ nullable: false
4805
+ productionMessageContent:
4806
+ type: string
4807
+ description: Example of message content.
4808
+ minLength: 1
4809
+ maxLength: 500
4810
+ nullable: false
4811
+ optInWorkflow:
4812
+ $ref: '#/components/schemas/optInWorkflow'
4813
+ additionalInformation:
4814
+ type: string
4815
+ description: Any additional information.
4816
+ minLength: 0
4817
+ maxLength: 500
4818
+ nullable: true
4819
+ isvReseller:
4820
+ $ref: '#/components/schemas/isvReseller'
4821
+ verificationUpdateRequest:
4822
+ type: object
4823
+ required:
4824
+ - businessAddress
4825
+ - businessContact
4826
+ - messageVolume
4827
+ - useCase
4828
+ - useCaseSummary
4829
+ - productionMessageContent
4830
+ - optInWorkflow
4831
+ properties:
4832
+ businessAddress:
4833
+ $ref: '#/components/schemas/address'
4834
+ businessContact:
4835
+ $ref: '#/components/schemas/contact'
4836
+ messageVolume:
4837
+ type: integer
4838
+ description: Estimated monthly volume of messages from the toll-free number.
4839
+ minimum: 10
4840
+ maximum: 10000000
4841
+ example: 10000
4842
+ useCase:
4843
+ $ref: '#/components/schemas/useCase'
4844
+ useCaseSummary:
4845
+ type: string
4846
+ description: A general idea of the use case and customer.
4847
+ minLength: 0
4848
+ maxLength: 500
4849
+ nullable: false
4850
+ productionMessageContent:
4851
+ type: string
4852
+ description: Example of message content.
4853
+ minLength: 0
4854
+ maxLength: 500
4855
+ nullable: false
4856
+ optInWorkflow:
4857
+ $ref: '#/components/schemas/optInWorkflow'
4858
+ additionalInformation:
4859
+ type: string
4860
+ description: Any additional information.
4861
+ minLength: 0
4862
+ maxLength: 500
4863
+ nullable: true
4864
+ isvReseller:
4865
+ $ref: '#/components/schemas/isvReseller'
4866
+ tfvBasicAuthentication:
4867
+ type: object
4868
+ properties:
4869
+ username:
4870
+ type: string
4871
+ maxLength: 100
4872
+ password:
4873
+ type: string
4874
+ maxLength: 200
4875
+ required:
4876
+ - username
4877
+ - password
4878
+ webhookSubscriptionRequestSchema:
4879
+ type: object
4880
+ properties:
4881
+ basicAuthentication:
4882
+ $ref: '#/components/schemas/tfvBasicAuthentication'
4883
+ callbackUrl:
4884
+ $ref: '#/components/schemas/webhookUrl'
4885
+ sharedSecretKey:
4886
+ $ref: '#/components/schemas/sharedSecretKey'
4887
+ required:
4888
+ - callbackUrl
4889
+ failureWebhook:
4890
+ type: object
4891
+ properties:
4892
+ accountId:
4893
+ $ref: '#/components/schemas/accountId1'
4894
+ phoneNumber:
4895
+ $ref: '#/components/schemas/tfPhoneNumber'
4896
+ errorCode:
4897
+ type: string
4898
+ description: >-
4899
+ An error code indicating what error was encountered. This code can
4900
+ be interpreted as an HTTP status code in regards to the error that
4901
+ was encountered.
4902
+ example: '400'
4903
+ errorDescription:
4904
+ type: string
4905
+ description: A description of the error that was encountered.
4906
+ example: cannot process request.
4907
+ errors:
4908
+ $ref: '#/components/schemas/tfvWebhookErrors'
4909
+ internalTicketNumber:
4910
+ $ref: '#/components/schemas/internalTicketNumberForWebhook'
4911
+ verificationDenialWebhook:
4912
+ type: object
4913
+ properties:
4914
+ accountId:
4915
+ $ref: '#/components/schemas/accountId1'
4916
+ additionalDenialReasons:
4917
+ description: >-
4918
+ An optional list of denial reasons in addition to
4919
+ declineReasonDescription when multiple reasons apply.
4920
+ items:
4921
+ $ref: '#/components/schemas/additionalDenialReason'
4922
+ example:
4923
+ - statusCode: 512
4924
+ reason: Reason A
4925
+ resubmitAllowed: true
4926
+ - statusCode: 513
4927
+ reason: Reason B
4928
+ resubmitAllowed: true
4929
+ type: array
4930
+ declineReasonDescription:
4931
+ $ref: '#/components/schemas/declineReasonDescription'
4932
+ denialStatusCode:
4933
+ $ref: '#/components/schemas/denialStatusCode'
4934
+ internalTicketNumber:
4935
+ $ref: '#/components/schemas/internalTicketNumberForWebhook'
4936
+ phoneNumber:
4937
+ $ref: '#/components/schemas/tfPhoneNumber'
4938
+ resubmitAllowed:
4939
+ $ref: '#/components/schemas/resubmitAllowed'
4940
+ status:
4941
+ $ref: '#/components/schemas/tfvUnverifiedStatus'
4942
+ verificationWebhook:
4943
+ type: object
4944
+ properties:
4945
+ accountId:
4946
+ $ref: '#/components/schemas/accountId1'
4947
+ phoneNumber:
4948
+ $ref: '#/components/schemas/tfPhoneNumber'
4949
+ status:
4950
+ $ref: '#/components/schemas/tfvCallbackStatusEnum'
4951
+ internalTicketNumber:
4952
+ $ref: '#/components/schemas/internalTicketNumberForWebhook'
4953
+ tfvSubmissionWrapper:
4954
+ type: object
4955
+ properties:
4956
+ submission:
4957
+ $ref: '#/components/schemas/verificationUpdateRequest'
4958
+ address:
4959
+ type: object
4960
+ nullable: false
4961
+ required:
4962
+ - name
4963
+ - addr1
4964
+ - city
4965
+ - state
4966
+ - zip
4967
+ - url
4968
+ properties:
4969
+ name:
4970
+ type: string
4971
+ description: The name of the business using the toll-free number.
4972
+ minLength: 1
4973
+ maxLength: 500
4974
+ nullable: false
4975
+ example: Bandwidth Inc.
4976
+ addr1:
4977
+ type: string
4978
+ description: The address of the business using the toll-free number.
4979
+ minLength: 1
4980
+ maxLength: 500
4981
+ nullable: false
4982
+ example: 2230 Bandmate Way
4983
+ addr2:
4984
+ type: string
4985
+ description: The address of the business using the toll-free number.
4986
+ minLength: 0
4987
+ maxLength: 500
4988
+ nullable: true
4989
+ city:
4990
+ type: string
4991
+ description: The city of the business using the toll-free number.
4992
+ minLength: 1
4993
+ maxLength: 500
4994
+ nullable: false
4995
+ example: Raleigh
4996
+ state:
4997
+ type: string
4998
+ description: The state of the business using the toll-free number.
4999
+ minLength: 1
5000
+ maxLength: 500
5001
+ nullable: false
5002
+ example: NC
5003
+ zip:
5004
+ type: string
5005
+ description: The zip of the business using the toll-free number.
5006
+ nullable: false
5007
+ example: '27606'
5008
+ pattern: '[- A-Za-z0-9]{0,500}'
5009
+ url:
5010
+ type: string
5011
+ format: url
5012
+ description: The website of the business using the toll-free number.
5013
+ minLength: 1
5014
+ maxLength: 500
5015
+ nullable: false
5016
+ example: https://www.example.com/path/to/resource
5017
+ optInWorkflow:
5018
+ type: object
5019
+ nullable: false
5020
+ required:
5021
+ - description
5022
+ - imageUrls
5023
+ properties:
5024
+ description:
5025
+ type: string
5026
+ minLength: 1
5027
+ maxLength: 500
5028
+ nullable: false
5029
+ example: Opt In Flow
5030
+ imageUrls:
5031
+ type: array
5032
+ items:
5033
+ type: string
5034
+ minLength: 1
5035
+ maxLength: 500
5036
+ nullable: false
5037
+ example: https://www.example.com/path/to/resource
5038
+ pattern: >-
5039
+ ^$|(https?:\/\/)?(www\.)?[-a-zA-Z0-9@:%._\+~#=]{1,253}\.[a-z]{2,6}\b([-a-zA-Z0-9@:%_\+.~#()?&//=]*)
5040
+ isvReseller:
5041
+ type: string
5042
+ description: ISV name.
5043
+ minLength: 0
5044
+ maxLength: 500
5045
+ nullable: true
5046
+ example: Test ISV
5047
+ contact:
5048
+ type: object
5049
+ nullable: false
5050
+ required:
5051
+ - firstName
5052
+ - lastName
5053
+ - email
5054
+ - phoneNumber
5055
+ properties:
5056
+ firstName:
5057
+ type: string
5058
+ description: The first name of the business contact using the toll-free number.
5059
+ minLength: 1
5060
+ maxLength: 500
5061
+ nullable: false
5062
+ example: John
5063
+ lastName:
5064
+ type: string
5065
+ description: The last name of the business contact using the toll-free number.
5066
+ minLength: 1
5067
+ maxLength: 500
5068
+ nullable: false
5069
+ example: Doe
5070
+ email:
5071
+ $ref: '#/components/schemas/email'
5072
+ phoneNumber:
5073
+ $ref: '#/components/schemas/businessContactPhoneNumber'
5074
+ email:
5075
+ type: string
5076
+ format: email
5077
+ minLength: 0
5078
+ maxLength: 500
5079
+ nullable: false
5080
+ pattern: >-
5081
+ ^(?:[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*|"(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21\x23-\x5b\x5d-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])*")@(?:(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?|\[(?:(?:(2(5[0-5]|[0-4][0-9])|1[0-9][0-9]|[1-9]?[0-9]))\.){3}(?:(2(5[0-5]|[0-4][0-9])|1[0-9][0-9]|[1-9]?[0-9])|[a-z0-9-]*[a-z0-9]:(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21-\x5a\x53-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])+)\])$
5082
+ example: foo@bar.com
5083
+ useCases:
5084
+ type: array
5085
+ items:
5086
+ type: string
5087
+ example:
5088
+ - 2FA
5089
+ - App Notifications
5090
+ - Appointments
5091
+ - Auctions
5092
+ - Auto Repair Services
5093
+ - Bank Transfers
5094
+ - Billing
5095
+ - Booking Confirmations
5096
+ - Business Updates
5097
+ - COVID-19 Alerts
5098
+ useCase:
5099
+ type: string
5100
+ description: The category of the use case.
5101
+ minLength: 0
5102
+ maxLength: 500
5103
+ example: 2FA
5104
+ webhookSubscriptionsListBody:
5105
+ description: >-
5106
+ A list of all webhook subscriptions registered for this account ID for
5107
+ this particular feature (unpaginated).
5108
+ type: object
5109
+ required:
5110
+ - data
5111
+ properties:
5112
+ links:
5113
+ $ref: '#/components/schemas/linksObject'
5114
+ errors:
5115
+ type: array
5116
+ items:
5117
+ $ref: '#/components/schemas/error'
5118
+ data:
5119
+ items:
5120
+ $ref: '#/components/schemas/webhookSubscription'
5121
+ type: array
5122
+ linksObject:
5123
+ type: object
5124
+ properties:
5125
+ first:
5126
+ description: The first (or only) page of results matching the query.
5127
+ type: string
5128
+ next:
5129
+ description: >-
5130
+ If more results exist than specified by 'size', this link returns
5131
+ the next page of 'size' results.
5132
+ type: string
5133
+ previous:
5134
+ description: >-
5135
+ If the results are more than one page, this link returns the
5136
+ previous page of 'size' results.
5137
+ type: string
5138
+ last:
5139
+ description: >-
5140
+ If more results exist than specified by 'size', this link return the
5141
+ last page of result.
5142
+ type: string
5143
+ error:
5144
+ type: object
5145
+ properties:
5146
+ code:
5147
+ type: integer
5148
+ description:
5149
+ type: string
5150
+ telephoneNumbers:
5151
+ type: array
5152
+ items:
5153
+ $ref: '#/components/schemas/telephoneNumber'
5154
+ telephoneNumber:
5155
+ type: object
5156
+ properties:
5157
+ telephoneNumber:
5158
+ description: Simple Telephone Number.
5159
+ type: string
5160
+ webhookSubscriptionTypeEnum:
5161
+ type: string
5162
+ enum:
5163
+ - TOLLFREE_VERIFICATION_STATUS
5164
+ - MESSAGING_PORTOUT_APPROVAL_STATUS
5165
+ example: TOLLFREE_VERIFICATION_STATUS
5166
+ webhookSubscription:
5167
+ description: >-
5168
+ Information about a webhook that Bandwidth should send upon the
5169
+ completion of event customer has subscribed to.
5170
+ type: object
5171
+ required:
5172
+ - callbackUrl
5173
+ properties:
5174
+ id:
5175
+ type: string
5176
+ example: 7hICGStfAfeGxEq3N0lQwO
5177
+ accountId:
5178
+ type: string
5179
+ example: '1234567'
5180
+ callbackUrl:
5181
+ $ref: '#/components/schemas/webhookUrl'
5182
+ type:
5183
+ $ref: '#/components/schemas/webhookSubscriptionTypeEnum'
5184
+ basicAuthentication:
5185
+ description: >-
5186
+ Basic authentication credentials are not required, but if present,
5187
+ both username and password must be provided.
5188
+ type: object
5189
+ required:
5190
+ - username
5191
+ - password
5192
+ properties:
5193
+ username:
5194
+ type: string
5195
+ maxLength: 100
5196
+ password:
5197
+ type: string
5198
+ maxLength: 200
5199
+ createdDate:
5200
+ type: string
5201
+ format: date-time
5202
+ example: '2023-05-15T13:56:39.965Z'
5203
+ modifiedDate:
5204
+ type: string
5205
+ format: date-time
5206
+ example: '2023-05-15T13:56:39.965Z'
5207
+ webhookUrl:
5208
+ description: >-
5209
+ Callback URL to receive status updates from Bandwidth. When a webhook
5210
+ subscription is registered with Bandwidth under a given account ID, it
5211
+ will be used to send status updates for all requests submitted under
5212
+ that account ID.
5213
+ type: string
5214
+ format: url
5215
+ minLength: 0
5216
+ maxLength: 2000
5217
+ nullable: true
5218
+ example: https://www.example.com/path/to/resource
5219
+ pattern: >-
5220
+ ^$|(https?:\/\/)?(www\.)?[-a-zA-Z0-9@:%._\+~#=]{1,253}\.[a-z]{2,6}\b([-a-zA-Z0-9@:%_\+.~#()?&//=]*)
5221
+ tfvError:
5222
+ description: A generic error object.
5223
+ properties:
5224
+ type:
5225
+ type: string
5226
+ example: Error Type
5227
+ description:
5228
+ type: string
5229
+ example: Error Message
5230
+ errors:
5231
+ type: object
5232
+ description: >-
5233
+ Each key of this errors object refers to a field of the submitted
5234
+ object (using dot notation for nested objects), with the field being
5235
+ a key to an array of one or more errors for that field.
5236
+ example:
5237
+ field: error message
5238
+ type: object
5239
+ tfvStatus:
5240
+ type: object
5241
+ properties:
5242
+ phoneNumber:
5243
+ $ref: '#/components/schemas/tfPhoneNumber'
5244
+ status:
5245
+ $ref: '#/components/schemas/tfvStatusEnum'
5246
+ internalTicketNumber:
5247
+ $ref: '#/components/schemas/internalTicketNumber'
5248
+ declineReasonDescription:
5249
+ $ref: '#/components/schemas/declineReasonDescription'
5250
+ resubmitAllowed:
5251
+ $ref: '#/components/schemas/resubmitAllowed'
5252
+ createdDateTime:
5253
+ type: string
5254
+ description: Date and time the verification request was created.
5255
+ format: date-time
5256
+ example: '2021-06-08T06:45:13.0Z'
5257
+ modifiedDateTime:
5258
+ type: string
5259
+ description: Date and time the verification request was last modified.
5260
+ format: date-time
5261
+ example: '2021-06-08T06:45:13.0Z'
5262
+ submission:
5263
+ $ref: '#/components/schemas/tfvSubmissionInfo'
5264
+ tfvSubmissionInfo:
5265
+ type: object
5266
+ properties:
5267
+ businessAddress:
5268
+ $ref: '#/components/schemas/address'
5269
+ businessContact:
5270
+ $ref: '#/components/schemas/contact'
5271
+ messageVolume:
5272
+ type: integer
5273
+ description: Estimated monthly volume of messages from the toll-free number.
5274
+ minimum: 10
5275
+ maximum: 10000000
5276
+ example: 10000
5277
+ useCase:
5278
+ $ref: '#/components/schemas/useCase'
5279
+ useCaseSummary:
5280
+ type: string
5281
+ description: A general idea of the use case and customer.
5282
+ minLength: 0
5283
+ maxLength: 500
5284
+ nullable: false
5285
+ example: Text summarizing the use case for the toll-free number
5286
+ productionMessageContent:
5287
+ type: string
5288
+ description: Example of message content.
5289
+ minLength: 0
5290
+ maxLength: 500
5291
+ nullable: false
5292
+ example: Production message content
5293
+ optInWorkflow:
5294
+ $ref: '#/components/schemas/optInWorkflow'
5295
+ additionalInformation:
5296
+ type: string
5297
+ description: Any additional information.
5298
+ minLength: 0
5299
+ maxLength: 500
5300
+ nullable: true
5301
+ example: Any additional information
5302
+ isvReseller:
5303
+ $ref: '#/components/schemas/isvReseller'
5304
+ tfvStatusEnum:
5305
+ type: string
5306
+ enum:
5307
+ - VERIFIED
5308
+ - UNVERIFIED
5309
+ - PENDING
5310
+ - PARTIALLY_VERIFIED
5311
+ - INVALID_STATUS
5312
+ example: VERIFIED
5313
+ sharedSecretKey:
5314
+ description: >-
5315
+ An ASCII string submitted by the user as a shared secret key for
5316
+ generating an HMAC header for callbacks.
5317
+ example: This is my $3cret
5318
+ maxLength: 64
5319
+ minLength: 16
5320
+ nullable: true
5321
+ pattern: ^[ -~]{16,64}$
5322
+ type: string
4413
5323
  responses:
4414
5324
  createMessageResponse:
4415
5325
  description: Accepted
@@ -4860,6 +5770,120 @@ components:
4860
5770
  summary: Example Internal Server Error Error
4861
5771
  value:
4862
5772
  message: Request has not been passed further.
5773
+ getTollFreeVerificationStatusResponse:
5774
+ description: OK
5775
+ content:
5776
+ application/json:
5777
+ schema:
5778
+ $ref: '#/components/schemas/tfvStatus'
5779
+ listWebhookSubscriptionsResponse:
5780
+ description: OK
5781
+ content:
5782
+ application/json:
5783
+ schema:
5784
+ $ref: '#/components/schemas/webhookSubscriptionsListBody'
5785
+ createWebhookSubscriptionResponse:
5786
+ description: Created
5787
+ content:
5788
+ application/json:
5789
+ schema:
5790
+ $ref: '#/components/schemas/webhookSubscription'
5791
+ updateWebhookSubscriptionResponse:
5792
+ description: OK
5793
+ content:
5794
+ application/json:
5795
+ schema:
5796
+ $ref: '#/components/schemas/webhookSubscription'
5797
+ listTollFreeUseCasesResponse:
5798
+ description: OK
5799
+ content:
5800
+ application/json:
5801
+ schema:
5802
+ $ref: '#/components/schemas/useCases'
5803
+ tfvBadRequestResponse:
5804
+ description: Bad Request
5805
+ content:
5806
+ application/json:
5807
+ schema:
5808
+ $ref: '#/components/schemas/tfvError'
5809
+ example:
5810
+ description: Cannot process request.
5811
+ type: bad request
5812
+ tfvPostBadRequestResponse:
5813
+ description: Bad Request
5814
+ content:
5815
+ application/json:
5816
+ schema:
5817
+ $ref: '#/components/schemas/tfvError'
5818
+ example:
5819
+ description: cannot process request.
5820
+ errors:
5821
+ businessName: Business name is required.
5822
+ businessContactEmail: Business contact email is not a valid email address.
5823
+ optInWorkflowImageURLs: Entries must be a valid array of objects.
5824
+ tfvUnauthorizedResponse:
5825
+ description: Unauthorized
5826
+ content:
5827
+ application/json:
5828
+ schema:
5829
+ $ref: '#/components/schemas/tfvError'
5830
+ example:
5831
+ description: Client is providing incorrect or invalid credentials.
5832
+ type: unauthorized
5833
+ tfvForbiddenResponse:
5834
+ description: Forbidden
5835
+ content:
5836
+ application/json:
5837
+ schema:
5838
+ $ref: '#/components/schemas/tfvError'
5839
+ example:
5840
+ description: Client is not authorized for the action.
5841
+ type: forbidden
5842
+ tfvNotFoundResponse:
5843
+ description: Cannot find the requested resource.
5844
+ content:
5845
+ application/json:
5846
+ schema:
5847
+ $ref: '#/components/schemas/tfvError'
5848
+ example:
5849
+ description: Cannot find the requested resource.
5850
+ type: Not Found
5851
+ tfvNotAllowedResponse:
5852
+ description: Method Not Allowed
5853
+ content:
5854
+ application/json:
5855
+ schema:
5856
+ $ref: '#/components/schemas/tfvError'
5857
+ example:
5858
+ description: Method is not allowed.
5859
+ type: Method Not Allowed
5860
+ tfvTooManyRequestsResponse:
5861
+ description: Too Many Requests
5862
+ content:
5863
+ application/json:
5864
+ schema:
5865
+ $ref: '#/components/schemas/tfvError'
5866
+ example:
5867
+ description: Throttling error. Too many requests.
5868
+ type: Too Many Requests
5869
+ tfvServerErrorResponse:
5870
+ description: Internal Server Error
5871
+ content:
5872
+ application/json:
5873
+ schema:
5874
+ $ref: '#/components/schemas/tfvError'
5875
+ example:
5876
+ description: Internal Server Error.
5877
+ type: Internal Server Error
5878
+ tfvServiceUnavailableResponse:
5879
+ description: Service Unavailable
5880
+ content:
5881
+ application/json:
5882
+ schema:
5883
+ $ref: '#/components/schemas/tfvError'
5884
+ example:
5885
+ description: Service Unavailable Error.
5886
+ type: Service Unavailable
4863
5887
  parameters:
4864
5888
  accountId:
4865
5889
  in: path
@@ -5227,6 +6251,22 @@ components:
5227
6251
  type: string
5228
6252
  description: The phone number lookup request ID from Bandwidth.
5229
6253
  example: 004223a0-8b17-41b1-bf81-20732adf5590
6254
+ tfPhoneNumberPathParam:
6255
+ in: path
6256
+ name: phoneNumber
6257
+ required: true
6258
+ schema:
6259
+ $ref: '#/components/schemas/tfPhoneNumber'
6260
+ description: Valid Toll-Free telephone number in E.164 format.
6261
+ example: '+18885555555'
6262
+ webhookSubscriptionIdPathParam:
6263
+ in: path
6264
+ name: id
6265
+ required: true
6266
+ schema:
6267
+ type: string
6268
+ description: Webhook subscription ID
6269
+ example: 7bt57JcsVYJrN9K1OcV1Nu
5230
6270
  examples:
5231
6271
  smsMessageReceivedCallbackExample:
5232
6272
  summary: An example of a sms message-received callback body.
@@ -5843,6 +6883,39 @@ components:
5843
6883
  $ref: '#/components/examples/singleNumberRequestExample'
5844
6884
  multipleNumberRequestExample:
5845
6885
  $ref: '#/components/examples/multipleNumberRequestExample'
6886
+ requestTollFreeVerificationRequest:
6887
+ description: Request for verification of a toll-free phone number.
6888
+ required: true
6889
+ content:
6890
+ application/json:
6891
+ schema:
6892
+ $ref: '#/components/schemas/verificationRequest'
6893
+ updateTollFreeVerificationRequestRequest:
6894
+ description: Update a request for verification of a toll-free phone number.
6895
+ required: true
6896
+ content:
6897
+ application/json:
6898
+ schema:
6899
+ $ref: '#/components/schemas/tfvSubmissionWrapper'
6900
+ verificationWebhookRequest:
6901
+ description: Verification callback status of a toll-free phone number.
6902
+ required: true
6903
+ content:
6904
+ application/json:
6905
+ schema:
6906
+ oneOf:
6907
+ - $ref: '#/components/schemas/verificationWebhook'
6908
+ - $ref: '#/components/schemas/verificationDenialWebhook'
6909
+ - $ref: '#/components/schemas/failureWebhook'
6910
+ webhookSubscriptionRequest:
6911
+ description: >-
6912
+ Information about a webhook that Bandwidth should send upon the
6913
+ completion of event customer is trying to subscribe to.
6914
+ required: true
6915
+ content:
6916
+ application/json:
6917
+ schema:
6918
+ $ref: '#/components/schemas/webhookSubscriptionRequestSchema'
5846
6919
  securitySchemes:
5847
6920
  Basic:
5848
6921
  type: http
@@ -5913,3 +6986,43 @@ components:
5913
6986
  responses:
5914
6987
  '200':
5915
6988
  description: OK
6989
+ tfVerificationStatus:
6990
+ your_url.com/webhookService:
6991
+ post:
6992
+ summary: TFV status updates sent to customer's webhook URL.
6993
+ description: >-
6994
+ Unique webhook URL provided by customers to which Bandwidth sends a
6995
+ POST request to notify customer regarding TFV status updates.
6996
+ operationId: tfvRequest
6997
+ parameters:
6998
+ - description: >-
6999
+ 64-character lowercase hexidecimal HMAC calculated with a shared
7000
+ secret key, the canonicalized request body, and SHA256. It is
7001
+ only included when a shared secret key is set through webhook
7002
+ subscription.
7003
+ example: ca7b9e9816c90d336f5dca529e733354b81535c7af027b81878ac98afb2dbaa2
7004
+ in: header
7005
+ name: x-bandwidth-signature-hmac-sha256
7006
+ schema:
7007
+ type: string
7008
+ requestBody:
7009
+ $ref: '#/components/requestBodies/verificationWebhookRequest'
7010
+ responses:
7011
+ '204':
7012
+ description: No Content
7013
+ '400':
7014
+ $ref: '#/components/responses/tfvBadRequestResponse'
7015
+ '401':
7016
+ $ref: '#/components/responses/tfvUnauthorizedResponse'
7017
+ '403':
7018
+ $ref: '#/components/responses/tfvForbiddenResponse'
7019
+ '404':
7020
+ $ref: '#/components/responses/tfvNotFoundResponse'
7021
+ '405':
7022
+ $ref: '#/components/responses/tfvNotAllowedResponse'
7023
+ '429':
7024
+ $ref: '#/components/responses/tfvTooManyRequestsResponse'
7025
+ '500':
7026
+ $ref: '#/components/responses/tfvServerErrorResponse'
7027
+ '503':
7028
+ $ref: '#/components/responses/tfvServiceUnavailableResponse'