Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
50 changes: 36 additions & 14 deletions bandwidth.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6034,12 +6034,30 @@ components:
description: Reason code for denial.
type: integer
example: 511
denialStatusCodeNullable:
description: Reason code for denial.
nullable: true
type: integer
example: 511
resubmitAllowed:
description: >-
Whether a Toll-Free Verification request qualifies for resubmission via
PUT.
example: true
type: boolean
additionalDenialReason:
type: object
properties:
statusCode:
$ref: '#/components/schemas/denialStatusCode'
reason:
$ref: '#/components/schemas/declineReasonDescription'
resubmitAllowed:
$ref: '#/components/schemas/resubmitAllowed'
required:
- statusCode
- reason
- resubmitAllowed
blocked:
description: >-
Whether a Toll-Free Verification is blocked. This attribute will only be
Expand Down Expand Up @@ -6194,19 +6212,6 @@ components:
type: boolean
description: Indicates whether the content is age-gated.
example: false
additionalDenialReason:
properties:
statusCode:
$ref: '#/components/schemas/denialStatusCode'
reason:
$ref: '#/components/schemas/declineReasonDescription'
resubmitAllowed:
$ref: '#/components/schemas/resubmitAllowed'
required:
- statusCode
- reason
- resubmitAllowed
type: object
internalTicketNumber:
type: string
description: >-
Expand Down Expand Up @@ -6402,6 +6407,7 @@ components:
description: >-
An optional list of denial reasons in addition to
declineReasonDescription when multiple reasons apply.
type: array
items:
$ref: '#/components/schemas/additionalDenialReason'
example:
Expand All @@ -6411,7 +6417,6 @@ components:
- statusCode: 513
reason: Reason B
resubmitAllowed: true
type: array
declineReasonDescription:
$ref: '#/components/schemas/declineReasonDescription'
denialStatusCode:
Expand Down Expand Up @@ -6779,6 +6784,23 @@ components:
$ref: '#/components/schemas/internalTicketNumber'
declineReasonDescription:
$ref: '#/components/schemas/declineReasonDescription'
denialStatusCode:
$ref: '#/components/schemas/denialStatusCodeNullable'
additionalDenialReasons:
description: >-
An optional list of denial reasons in addition to
declineReasonDescription when multiple reasons apply.
nullable: true
type: array
items:
$ref: '#/components/schemas/additionalDenialReason'
example:
- statusCode: 512
reason: Reason A
resubmitAllowed: true
- statusCode: 513
reason: Reason B
resubmitAllowed: true
resubmitAllowed:
$ref: '#/components/schemas/resubmitAllowed'
createdDateTime:
Expand Down
26 changes: 24 additions & 2 deletions bandwidth/models/tfv_status.py
Original file line number Diff line number Diff line change
Expand Up @@ -19,9 +19,10 @@
import json

from datetime import datetime
from pydantic import BaseModel, ConfigDict, Field, StrictBool, StrictStr, field_validator
from pydantic import BaseModel, ConfigDict, Field, StrictBool, StrictInt, StrictStr, field_validator
from typing import Any, ClassVar, Dict, List, Optional
from typing_extensions import Annotated
from bandwidth.models.additional_denial_reason import AdditionalDenialReason
from bandwidth.models.tfv_status_enum import TfvStatusEnum
from bandwidth.models.tfv_submission_info import TfvSubmissionInfo
from typing import Optional, Set
Expand All @@ -35,6 +36,8 @@ class TfvStatus(BaseModel):
status: Optional[TfvStatusEnum] = None
internal_ticket_number: Optional[StrictStr] = Field(default=None, description="Unique identifier (UUID) generated by Bandwidth to assist in tracking the verification status of a toll-free number - included in all webhook payloads.", alias="internalTicketNumber")
decline_reason_description: Optional[StrictStr] = Field(default=None, description="Explanation for why a verification request was declined.", alias="declineReasonDescription")
denial_status_code: Optional[StrictInt] = Field(default=None, description="Reason code for denial.", alias="denialStatusCode")
additional_denial_reasons: Optional[List[AdditionalDenialReason]] = Field(default=None, description="An optional list of denial reasons in addition to declineReasonDescription when multiple reasons apply.", alias="additionalDenialReasons")
resubmit_allowed: Optional[StrictBool] = Field(default=None, description="Whether a Toll-Free Verification request qualifies for resubmission via PUT.", alias="resubmitAllowed")
created_date_time: Optional[datetime] = Field(default=None, description="Date and time the verification request was created.", alias="createdDateTime")
modified_date_time: Optional[datetime] = Field(default=None, description="Date and time the verification request was last modified.", alias="modifiedDateTime")
Expand All @@ -43,7 +46,7 @@ class TfvStatus(BaseModel):
blocked_reason: Optional[StrictStr] = Field(default=None, description="The reason why the Toll-Free Verification is blocked. This attribute will only be defined when the number is blocked.", alias="blockedReason")
cv_token: Optional[Annotated[str, Field(min_length=0, strict=True, max_length=500)]] = Field(default=None, description="The token provided by Campaign Verify to validate your political use case. Only required for 527 political organizations. If you are not a 527 political organization, this field should be omitted. Supplying an empty string will likely result in rejection.", alias="cvToken")
additional_properties: Dict[str, Any] = {}
__properties: ClassVar[List[str]] = ["phoneNumber", "status", "internalTicketNumber", "declineReasonDescription", "resubmitAllowed", "createdDateTime", "modifiedDateTime", "submission", "blocked", "blockedReason", "cvToken"]
__properties: ClassVar[List[str]] = ["phoneNumber", "status", "internalTicketNumber", "declineReasonDescription", "denialStatusCode", "additionalDenialReasons", "resubmitAllowed", "createdDateTime", "modifiedDateTime", "submission", "blocked", "blockedReason", "cvToken"]

@field_validator('phone_number')
def phone_number_validate_regular_expression(cls, value):
Expand Down Expand Up @@ -96,6 +99,13 @@ def to_dict(self) -> Dict[str, Any]:
exclude=excluded_fields,
exclude_none=True,
)
# override the default output from pydantic by calling `to_dict()` of each item in additional_denial_reasons (list)
_items = []
if self.additional_denial_reasons:
for _item_additional_denial_reasons in self.additional_denial_reasons:
if _item_additional_denial_reasons:
_items.append(_item_additional_denial_reasons.to_dict())
_dict['additionalDenialReasons'] = _items
# override the default output from pydantic by calling `to_dict()` of submission
if self.submission:
_dict['submission'] = self.submission.to_dict()
Expand All @@ -104,6 +114,16 @@ def to_dict(self) -> Dict[str, Any]:
for _key, _value in self.additional_properties.items():
_dict[_key] = _value

# set to None if denial_status_code (nullable) is None
# and model_fields_set contains the field
if self.denial_status_code is None and "denial_status_code" in self.model_fields_set:
_dict['denialStatusCode'] = None

# set to None if additional_denial_reasons (nullable) is None
# and model_fields_set contains the field
if self.additional_denial_reasons is None and "additional_denial_reasons" in self.model_fields_set:
_dict['additionalDenialReasons'] = None

# set to None if cv_token (nullable) is None
# and model_fields_set contains the field
if self.cv_token is None and "cv_token" in self.model_fields_set:
Expand All @@ -125,6 +145,8 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
"status": obj.get("status"),
"internalTicketNumber": obj.get("internalTicketNumber"),
"declineReasonDescription": obj.get("declineReasonDescription"),
"denialStatusCode": obj.get("denialStatusCode"),
"additionalDenialReasons": [AdditionalDenialReason.from_dict(_item) for _item in obj["additionalDenialReasons"]] if obj.get("additionalDenialReasons") is not None else None,
"resubmitAllowed": obj.get("resubmitAllowed"),
"createdDateTime": obj.get("createdDateTime"),
"modifiedDateTime": obj.get("modifiedDateTime"),
Expand Down
2 changes: 2 additions & 0 deletions docs/TfvStatus.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,8 @@ Name | Type | Description | Notes
**status** | [**TfvStatusEnum**](TfvStatusEnum.md) | | [optional]
**internal_ticket_number** | **str** | Unique identifier (UUID) generated by Bandwidth to assist in tracking the verification status of a toll-free number - included in all webhook payloads. | [optional]
**decline_reason_description** | **str** | Explanation for why a verification request was declined. | [optional]
**denial_status_code** | **int** | Reason code for denial. | [optional]
**additional_denial_reasons** | [**List[AdditionalDenialReason]**](AdditionalDenialReason.md) | An optional list of denial reasons in addition to declineReasonDescription when multiple reasons apply. | [optional]
**resubmit_allowed** | **bool** | Whether a Toll-Free Verification request qualifies for resubmission via PUT. | [optional]
**created_date_time** | **datetime** | Date and time the verification request was created. | [optional]
**modified_date_time** | **datetime** | Date and time the verification request was last modified. | [optional]
Expand Down
Loading