From 25840e1ef91c26e9874bf669d0ad31bb4eb2615f Mon Sep 17 00:00:00 2001 From: DX-Bandwidth Date: Tue, 26 Aug 2025 14:07:36 +0000 Subject: [PATCH 1/3] Generate SDK with OpenAPI Generator Version --- .openapi-generator/FILES | 6 + api/messages-api.ts | 112 +++++++++- bandwidth.yml | 254 ++++++++++++++++++++++ docs/BusinessEntityTypeEnum.md | 17 ++ docs/BusinessRegistrationTypeEnum.md | 11 + docs/ListMessageItem.md | 12 + docs/MessageTypeEnum.md | 2 + docs/MessagesApi.md | 36 +++ docs/OptInWorkflow.md | 2 + docs/ProductTypeEnum.md | 25 +++ docs/TfvSubmissionInfo.md | 6 + docs/VerificationRequest.md | 10 + docs/VerificationUpdateRequest.md | 10 + models/business-entity-type-enum.ts | 34 +++ models/business-registration-type-enum.ts | 31 +++ models/index.ts | 3 + models/list-message-item.ts | 36 +++ models/message-type-enum.ts | 3 +- models/opt-in-workflow.ts | 6 + models/product-type-enum.ts | 38 ++++ models/tfv-submission-info.ts | 26 +++ models/verification-request.ts | 38 ++++ models/verification-update-request.ts | 38 ++++ 23 files changed, 748 insertions(+), 8 deletions(-) create mode 100644 docs/BusinessEntityTypeEnum.md create mode 100644 docs/BusinessRegistrationTypeEnum.md create mode 100644 docs/ProductTypeEnum.md create mode 100644 models/business-entity-type-enum.ts create mode 100644 models/business-registration-type-enum.ts create mode 100644 models/product-type-enum.ts diff --git a/.openapi-generator/FILES b/.openapi-generator/FILES index 26bb222..924dc65 100644 --- a/.openapi-generator/FILES +++ b/.openapi-generator/FILES @@ -22,6 +22,8 @@ docs/AnswerCallback.md docs/BlockedWebhook.md docs/BridgeCompleteCallback.md docs/BridgeTargetCompleteCallback.md +docs/BusinessEntityTypeEnum.md +docs/BusinessRegistrationTypeEnum.md docs/CallDirectionEnum.md docs/CallRecordingMetadata.md docs/CallState.md @@ -111,6 +113,7 @@ docs/OptInWorkflow.md docs/PageInfo.md docs/PhoneNumberLookupApi.md docs/PriorityEnum.md +docs/ProductTypeEnum.md docs/RbmActionBase.md docs/RbmActionDial.md docs/RbmActionOpenUrl.md @@ -186,6 +189,8 @@ models/answer-callback.ts models/blocked-webhook.ts models/bridge-complete-callback.ts models/bridge-target-complete-callback.ts +models/business-entity-type-enum.ts +models/business-registration-type-enum.ts models/call-direction-enum.ts models/call-recording-metadata.ts models/call-state-enum.ts @@ -269,6 +274,7 @@ models/multi-channel-message-response-data.ts models/opt-in-workflow.ts models/page-info.ts models/priority-enum.ts +models/product-type-enum.ts models/rbm-action-base.ts models/rbm-action-dial.ts models/rbm-action-open-url.ts diff --git a/api/messages-api.ts b/api/messages-api.ts index 15981ec..44ecd61 100644 --- a/api/messages-api.ts +++ b/api/messages-api.ts @@ -37,6 +37,8 @@ import type { MessageTypeEnum } from '../models'; import type { MessagesList } from '../models'; // @ts-ignore import type { MessagingRequestError } from '../models'; +// @ts-ignore +import type { ProductTypeEnum } from '../models'; /** * MessagesApi - axios parameter creator * @export @@ -102,6 +104,18 @@ export const MessagesApiAxiosParamCreator = function (configuration?: Configurat * @param {string} [fromDateTime] The start of the date range to search in ISO 8601 format. Uses the message receive time. The date range to search in is currently 14 days. * @param {string} [toDateTime] The end of the date range to search in ISO 8601 format. Uses the message receive time. The date range to search in is currently 14 days. * @param {string} [campaignId] The campaign ID of the message. + * @param {number} [fromBwLatency] The minimum Bandwidth latency of the message in seconds. Only available for accounts with the Advanced Quality Metrics feature enabled. + * @param {boolean} [bwQueued] A boolean value indicating whether the message is queued in the Bandwidth network. + * @param {ProductTypeEnum} [product] Messaging product associated with the message. + * @param {string} [location] Location Id associated with the message. + * @param {boolean} [carrierQueued] A boolean value indicating whether the message is queued in the carrier network. Only available for OUTBOUND messages from accounts with the Advanced Quality Metrics feature enabled. + * @param {number} [fromCarrierLatency] The minimum carrier latency of the message in seconds. Only available for OUTBOUND messages from accounts with the Advanced Quality Metrics feature enabled. + * @param {string} [callingNumberCountryA3] Calling number country in A3 format. + * @param {string} [calledNumberCountryA3] Called number country in A3 format. + * @param {number} [fromSegmentCount] Segment count (start range). + * @param {number} [toSegmentCount] Segment count (end range). + * @param {number} [fromMessageSize] Message size (start range). + * @param {number} [toMessageSize] Message size (end range). * @param {string} [sort] The field and direction to sort by combined with a colon. Direction is either asc or desc. * @param {string} [pageToken] A base64 encoded value used for pagination of results. * @param {number} [limit] The maximum records requested in search result. Default 100. The sum of limit and after cannot be more than 10000. @@ -109,7 +123,7 @@ export const MessagesApiAxiosParamCreator = function (configuration?: Configurat * @param {*} [options] Override http request option. * @throws {RequiredError} */ - listMessages: async (accountId: string, messageId?: string, sourceTn?: string, destinationTn?: string, messageStatus?: MessageStatusEnum, messageDirection?: ListMessageDirectionEnum, carrierName?: string, messageType?: MessageTypeEnum, errorCode?: number, fromDateTime?: string, toDateTime?: string, campaignId?: string, sort?: string, pageToken?: string, limit?: number, limitTotalCount?: boolean, options: RawAxiosRequestConfig = {}): Promise => { + listMessages: async (accountId: string, messageId?: string, sourceTn?: string, destinationTn?: string, messageStatus?: MessageStatusEnum, messageDirection?: ListMessageDirectionEnum, carrierName?: string, messageType?: MessageTypeEnum, errorCode?: number, fromDateTime?: string, toDateTime?: string, campaignId?: string, fromBwLatency?: number, bwQueued?: boolean, product?: ProductTypeEnum, location?: string, carrierQueued?: boolean, fromCarrierLatency?: number, callingNumberCountryA3?: string, calledNumberCountryA3?: string, fromSegmentCount?: number, toSegmentCount?: number, fromMessageSize?: number, toMessageSize?: number, sort?: string, pageToken?: string, limit?: number, limitTotalCount?: boolean, options: RawAxiosRequestConfig = {}): Promise => { // verify required parameter 'accountId' is not null or undefined assertParamExists('listMessages', 'accountId', accountId) const localVarPath = `/users/{accountId}/messages` @@ -173,6 +187,54 @@ export const MessagesApiAxiosParamCreator = function (configuration?: Configurat localVarQueryParameter['campaignId'] = campaignId; } + if (fromBwLatency !== undefined) { + localVarQueryParameter['fromBwLatency'] = fromBwLatency; + } + + if (bwQueued !== undefined) { + localVarQueryParameter['bwQueued'] = bwQueued; + } + + if (product !== undefined) { + localVarQueryParameter['product'] = product; + } + + if (location !== undefined) { + localVarQueryParameter['location'] = location; + } + + if (carrierQueued !== undefined) { + localVarQueryParameter['carrierQueued'] = carrierQueued; + } + + if (fromCarrierLatency !== undefined) { + localVarQueryParameter['fromCarrierLatency'] = fromCarrierLatency; + } + + if (callingNumberCountryA3 !== undefined) { + localVarQueryParameter['callingNumberCountryA3'] = callingNumberCountryA3; + } + + if (calledNumberCountryA3 !== undefined) { + localVarQueryParameter['calledNumberCountryA3'] = calledNumberCountryA3; + } + + if (fromSegmentCount !== undefined) { + localVarQueryParameter['fromSegmentCount'] = fromSegmentCount; + } + + if (toSegmentCount !== undefined) { + localVarQueryParameter['toSegmentCount'] = toSegmentCount; + } + + if (fromMessageSize !== undefined) { + localVarQueryParameter['fromMessageSize'] = fromMessageSize; + } + + if (toMessageSize !== undefined) { + localVarQueryParameter['toMessageSize'] = toMessageSize; + } + if (sort !== undefined) { localVarQueryParameter['sort'] = sort; } @@ -239,6 +301,18 @@ export const MessagesApiFp = function(configuration?: Configuration) { * @param {string} [fromDateTime] The start of the date range to search in ISO 8601 format. Uses the message receive time. The date range to search in is currently 14 days. * @param {string} [toDateTime] The end of the date range to search in ISO 8601 format. Uses the message receive time. The date range to search in is currently 14 days. * @param {string} [campaignId] The campaign ID of the message. + * @param {number} [fromBwLatency] The minimum Bandwidth latency of the message in seconds. Only available for accounts with the Advanced Quality Metrics feature enabled. + * @param {boolean} [bwQueued] A boolean value indicating whether the message is queued in the Bandwidth network. + * @param {ProductTypeEnum} [product] Messaging product associated with the message. + * @param {string} [location] Location Id associated with the message. + * @param {boolean} [carrierQueued] A boolean value indicating whether the message is queued in the carrier network. Only available for OUTBOUND messages from accounts with the Advanced Quality Metrics feature enabled. + * @param {number} [fromCarrierLatency] The minimum carrier latency of the message in seconds. Only available for OUTBOUND messages from accounts with the Advanced Quality Metrics feature enabled. + * @param {string} [callingNumberCountryA3] Calling number country in A3 format. + * @param {string} [calledNumberCountryA3] Called number country in A3 format. + * @param {number} [fromSegmentCount] Segment count (start range). + * @param {number} [toSegmentCount] Segment count (end range). + * @param {number} [fromMessageSize] Message size (start range). + * @param {number} [toMessageSize] Message size (end range). * @param {string} [sort] The field and direction to sort by combined with a colon. Direction is either asc or desc. * @param {string} [pageToken] A base64 encoded value used for pagination of results. * @param {number} [limit] The maximum records requested in search result. Default 100. The sum of limit and after cannot be more than 10000. @@ -246,8 +320,8 @@ export const MessagesApiFp = function(configuration?: Configuration) { * @param {*} [options] Override http request option. * @throws {RequiredError} */ - async listMessages(accountId: string, messageId?: string, sourceTn?: string, destinationTn?: string, messageStatus?: MessageStatusEnum, messageDirection?: ListMessageDirectionEnum, carrierName?: string, messageType?: MessageTypeEnum, errorCode?: number, fromDateTime?: string, toDateTime?: string, campaignId?: string, sort?: string, pageToken?: string, limit?: number, limitTotalCount?: boolean, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { - const localVarAxiosArgs = await localVarAxiosParamCreator.listMessages(accountId, messageId, sourceTn, destinationTn, messageStatus, messageDirection, carrierName, messageType, errorCode, fromDateTime, toDateTime, campaignId, sort, pageToken, limit, limitTotalCount, options); + async listMessages(accountId: string, messageId?: string, sourceTn?: string, destinationTn?: string, messageStatus?: MessageStatusEnum, messageDirection?: ListMessageDirectionEnum, carrierName?: string, messageType?: MessageTypeEnum, errorCode?: number, fromDateTime?: string, toDateTime?: string, campaignId?: string, fromBwLatency?: number, bwQueued?: boolean, product?: ProductTypeEnum, location?: string, carrierQueued?: boolean, fromCarrierLatency?: number, callingNumberCountryA3?: string, calledNumberCountryA3?: string, fromSegmentCount?: number, toSegmentCount?: number, fromMessageSize?: number, toMessageSize?: number, sort?: string, pageToken?: string, limit?: number, limitTotalCount?: boolean, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.listMessages(accountId, messageId, sourceTn, destinationTn, messageStatus, messageDirection, carrierName, messageType, errorCode, fromDateTime, toDateTime, campaignId, fromBwLatency, bwQueued, product, location, carrierQueued, fromCarrierLatency, callingNumberCountryA3, calledNumberCountryA3, fromSegmentCount, toSegmentCount, fromMessageSize, toMessageSize, sort, pageToken, limit, limitTotalCount, options); const localVarOperationServerIndex = configuration?.serverIndex ?? 0; const localVarOperationServerBasePath = operationServerMap['MessagesApi.listMessages']?.[localVarOperationServerIndex]?.url; return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); @@ -288,6 +362,18 @@ export const MessagesApiFactory = function (configuration?: Configuration, baseP * @param {string} [fromDateTime] The start of the date range to search in ISO 8601 format. Uses the message receive time. The date range to search in is currently 14 days. * @param {string} [toDateTime] The end of the date range to search in ISO 8601 format. Uses the message receive time. The date range to search in is currently 14 days. * @param {string} [campaignId] The campaign ID of the message. + * @param {number} [fromBwLatency] The minimum Bandwidth latency of the message in seconds. Only available for accounts with the Advanced Quality Metrics feature enabled. + * @param {boolean} [bwQueued] A boolean value indicating whether the message is queued in the Bandwidth network. + * @param {ProductTypeEnum} [product] Messaging product associated with the message. + * @param {string} [location] Location Id associated with the message. + * @param {boolean} [carrierQueued] A boolean value indicating whether the message is queued in the carrier network. Only available for OUTBOUND messages from accounts with the Advanced Quality Metrics feature enabled. + * @param {number} [fromCarrierLatency] The minimum carrier latency of the message in seconds. Only available for OUTBOUND messages from accounts with the Advanced Quality Metrics feature enabled. + * @param {string} [callingNumberCountryA3] Calling number country in A3 format. + * @param {string} [calledNumberCountryA3] Called number country in A3 format. + * @param {number} [fromSegmentCount] Segment count (start range). + * @param {number} [toSegmentCount] Segment count (end range). + * @param {number} [fromMessageSize] Message size (start range). + * @param {number} [toMessageSize] Message size (end range). * @param {string} [sort] The field and direction to sort by combined with a colon. Direction is either asc or desc. * @param {string} [pageToken] A base64 encoded value used for pagination of results. * @param {number} [limit] The maximum records requested in search result. Default 100. The sum of limit and after cannot be more than 10000. @@ -295,8 +381,8 @@ export const MessagesApiFactory = function (configuration?: Configuration, baseP * @param {*} [options] Override http request option. * @throws {RequiredError} */ - listMessages(accountId: string, messageId?: string, sourceTn?: string, destinationTn?: string, messageStatus?: MessageStatusEnum, messageDirection?: ListMessageDirectionEnum, carrierName?: string, messageType?: MessageTypeEnum, errorCode?: number, fromDateTime?: string, toDateTime?: string, campaignId?: string, sort?: string, pageToken?: string, limit?: number, limitTotalCount?: boolean, options?: RawAxiosRequestConfig): AxiosPromise { - return localVarFp.listMessages(accountId, messageId, sourceTn, destinationTn, messageStatus, messageDirection, carrierName, messageType, errorCode, fromDateTime, toDateTime, campaignId, sort, pageToken, limit, limitTotalCount, options).then((request) => request(axios, basePath)); + listMessages(accountId: string, messageId?: string, sourceTn?: string, destinationTn?: string, messageStatus?: MessageStatusEnum, messageDirection?: ListMessageDirectionEnum, carrierName?: string, messageType?: MessageTypeEnum, errorCode?: number, fromDateTime?: string, toDateTime?: string, campaignId?: string, fromBwLatency?: number, bwQueued?: boolean, product?: ProductTypeEnum, location?: string, carrierQueued?: boolean, fromCarrierLatency?: number, callingNumberCountryA3?: string, calledNumberCountryA3?: string, fromSegmentCount?: number, toSegmentCount?: number, fromMessageSize?: number, toMessageSize?: number, sort?: string, pageToken?: string, limit?: number, limitTotalCount?: boolean, options?: RawAxiosRequestConfig): AxiosPromise { + return localVarFp.listMessages(accountId, messageId, sourceTn, destinationTn, messageStatus, messageDirection, carrierName, messageType, errorCode, fromDateTime, toDateTime, campaignId, fromBwLatency, bwQueued, product, location, carrierQueued, fromCarrierLatency, callingNumberCountryA3, calledNumberCountryA3, fromSegmentCount, toSegmentCount, fromMessageSize, toMessageSize, sort, pageToken, limit, limitTotalCount, options).then((request) => request(axios, basePath)); }, }; }; @@ -336,6 +422,18 @@ export class MessagesApi extends BaseAPI { * @param {string} [fromDateTime] The start of the date range to search in ISO 8601 format. Uses the message receive time. The date range to search in is currently 14 days. * @param {string} [toDateTime] The end of the date range to search in ISO 8601 format. Uses the message receive time. The date range to search in is currently 14 days. * @param {string} [campaignId] The campaign ID of the message. + * @param {number} [fromBwLatency] The minimum Bandwidth latency of the message in seconds. Only available for accounts with the Advanced Quality Metrics feature enabled. + * @param {boolean} [bwQueued] A boolean value indicating whether the message is queued in the Bandwidth network. + * @param {ProductTypeEnum} [product] Messaging product associated with the message. + * @param {string} [location] Location Id associated with the message. + * @param {boolean} [carrierQueued] A boolean value indicating whether the message is queued in the carrier network. Only available for OUTBOUND messages from accounts with the Advanced Quality Metrics feature enabled. + * @param {number} [fromCarrierLatency] The minimum carrier latency of the message in seconds. Only available for OUTBOUND messages from accounts with the Advanced Quality Metrics feature enabled. + * @param {string} [callingNumberCountryA3] Calling number country in A3 format. + * @param {string} [calledNumberCountryA3] Called number country in A3 format. + * @param {number} [fromSegmentCount] Segment count (start range). + * @param {number} [toSegmentCount] Segment count (end range). + * @param {number} [fromMessageSize] Message size (start range). + * @param {number} [toMessageSize] Message size (end range). * @param {string} [sort] The field and direction to sort by combined with a colon. Direction is either asc or desc. * @param {string} [pageToken] A base64 encoded value used for pagination of results. * @param {number} [limit] The maximum records requested in search result. Default 100. The sum of limit and after cannot be more than 10000. @@ -344,8 +442,8 @@ export class MessagesApi extends BaseAPI { * @throws {RequiredError} * @memberof MessagesApi */ - public listMessages(accountId: string, messageId?: string, sourceTn?: string, destinationTn?: string, messageStatus?: MessageStatusEnum, messageDirection?: ListMessageDirectionEnum, carrierName?: string, messageType?: MessageTypeEnum, errorCode?: number, fromDateTime?: string, toDateTime?: string, campaignId?: string, sort?: string, pageToken?: string, limit?: number, limitTotalCount?: boolean, options?: RawAxiosRequestConfig) { - return MessagesApiFp(this.configuration).listMessages(accountId, messageId, sourceTn, destinationTn, messageStatus, messageDirection, carrierName, messageType, errorCode, fromDateTime, toDateTime, campaignId, sort, pageToken, limit, limitTotalCount, options).then((request) => request(this.axios, this.basePath)); + public listMessages(accountId: string, messageId?: string, sourceTn?: string, destinationTn?: string, messageStatus?: MessageStatusEnum, messageDirection?: ListMessageDirectionEnum, carrierName?: string, messageType?: MessageTypeEnum, errorCode?: number, fromDateTime?: string, toDateTime?: string, campaignId?: string, fromBwLatency?: number, bwQueued?: boolean, product?: ProductTypeEnum, location?: string, carrierQueued?: boolean, fromCarrierLatency?: number, callingNumberCountryA3?: string, calledNumberCountryA3?: string, fromSegmentCount?: number, toSegmentCount?: number, fromMessageSize?: number, toMessageSize?: number, sort?: string, pageToken?: string, limit?: number, limitTotalCount?: boolean, options?: RawAxiosRequestConfig) { + return MessagesApiFp(this.configuration).listMessages(accountId, messageId, sourceTn, destinationTn, messageStatus, messageDirection, carrierName, messageType, errorCode, fromDateTime, toDateTime, campaignId, fromBwLatency, bwQueued, product, location, carrierQueued, fromCarrierLatency, callingNumberCountryA3, calledNumberCountryA3, fromSegmentCount, toSegmentCount, fromMessageSize, toMessageSize, sort, pageToken, limit, limitTotalCount, options).then((request) => request(this.axios, this.basePath)); } } diff --git a/bandwidth.yml b/bandwidth.yml index 4b3681c..004fb91 100644 --- a/bandwidth.yml +++ b/bandwidth.yml @@ -179,6 +179,18 @@ paths: - $ref: '#/components/parameters/fromDateTime' - $ref: '#/components/parameters/toDateTime' - $ref: '#/components/parameters/campaignId' + - $ref: '#/components/parameters/fromBwLatency' + - $ref: '#/components/parameters/bwQueued' + - $ref: '#/components/parameters/product' + - $ref: '#/components/parameters/location' + - $ref: '#/components/parameters/carrierQueued' + - $ref: '#/components/parameters/fromCarrierLatency' + - $ref: '#/components/parameters/callingNumberCountryA3' + - $ref: '#/components/parameters/calledNumberCountryA3' + - $ref: '#/components/parameters/fromSegmentCount' + - $ref: '#/components/parameters/toSegmentCount' + - $ref: '#/components/parameters/fromMessageSize' + - $ref: '#/components/parameters/toMessageSize' - $ref: '#/components/parameters/sort' - $ref: '#/components/parameters/pageToken' - $ref: '#/components/parameters/limit' @@ -1716,7 +1728,22 @@ components: enum: - sms - mms + - rcs example: sms + productTypeEnum: + type: string + description: The type of product associated with the message. + enum: + - LOCAL_A2P + - P2P + - SHORT_CODE_REACH + - TOLL_FREE + - HOSTED_SHORT_CODE + - ALPHA_NUMERIC + - RBM_MEDIA + - RBM_RICH + - RBM_CONVERSATIONAL + example: P2P fieldError: type: object properties: @@ -1819,6 +1846,41 @@ components: description: The campaign ID of the message if it has one. nullable: true example: CJEUMDK + bwLatency: + type: integer + description: >- + The Bandwidth latency of the message in seconds. Only available for + accounts with the Advanced Quality Metrics feature enabled. + nullable: true + example: 20 + carrierLatency: + type: integer + description: >- + The carrier latency of the message in seconds. Only available for + OUTBOUND messages from accounts with the Advanced Quality Metrics + feature enabled. + nullable: true + example: 20 + callingNumberCountryA3: + type: string + description: The A3 country code of the calling number. + nullable: true + example: USA + calledNumberCountryA3: + type: string + description: The A3 country code of the called number. + nullable: true + example: USA + product: + type: string + description: The messaging product associated with the message. + nullable: true + example: P2P + location: + type: string + description: The location ID associated with this message. + nullable: true + example: 123ID pageInfo: title: PageInfo type: object @@ -5478,6 +5540,50 @@ components: description: The company 'Doing Business As'. example: Another Company Name Inc. type: string + businessRegistrationNumber: + type: string + description: >- + US Federal Tax ID Number (EIN) or Canada Business Number (CBN). Optional + until early 2026. If a value is provided for this field, a value must be + provided for `businessRegistrationType` and `businessEntityType`. + Available starting October 1st, 2025. + nullable: true + maxLength: 500 + example: 12-3456789 + businessRegistrationTypeEnum: + type: string + description: >- + The type of business registration number. Optional until early 2026; + required if `businessRegistrationNumber` is provided. Available starting + October 1st, 2025. + enum: + - EIN + - CBN + nullable: true + businessEntityTypeEnum: + type: string + description: >- + The type of registered business. If no option is applicable, please + provide "SOLE_PROPRIETOR" as a value. Optional until early 2026; + required if `businessRegistrationNumber` is provided. Available starting + October 1st, 2025. + enum: + - SOLE_PROPRIETOR + - PRIVATE_PROFIT + - PUBLIC_PROFIT + - NON_PROFIT + - GOVERNMENT + nullable: true + helpMessageResponse: + type: string + description: A message that gets sent to users requesting help. + nullable: true + maxLength: 500 + example: Please contact support for assistance. + ageGatedContent: + type: boolean + description: Indicates whether the content is age-gated. + example: false additionalDenialReason: properties: statusCode: @@ -5564,6 +5670,16 @@ components: $ref: '#/components/schemas/termsAndConditionsUrl' businessDba: $ref: '#/components/schemas/businessDba' + businessRegistrationNumber: + $ref: '#/components/schemas/businessRegistrationNumber' + businessRegistrationType: + $ref: '#/components/schemas/businessRegistrationTypeEnum' + businessEntityType: + $ref: '#/components/schemas/businessEntityTypeEnum' + helpMessageResponse: + $ref: '#/components/schemas/helpMessageResponse' + ageGatedContent: + $ref: '#/components/schemas/ageGatedContent' verificationUpdateRequest: type: object required: @@ -5603,6 +5719,16 @@ components: $ref: '#/components/schemas/termsAndConditionsUrl' businessDba: $ref: '#/components/schemas/businessDba' + businessRegistrationNumber: + $ref: '#/components/schemas/businessRegistrationNumber' + businessRegistrationType: + $ref: '#/components/schemas/businessRegistrationTypeEnum' + businessEntityType: + $ref: '#/components/schemas/businessEntityTypeEnum' + helpMessageResponse: + $ref: '#/components/schemas/helpMessageResponse' + ageGatedContent: + $ref: '#/components/schemas/ageGatedContent' tfvBasicAuthentication: type: object properties: @@ -5806,6 +5932,12 @@ components: example: https://www.example.com/path/to/resource pattern: >- ^$|(https?:\/\/)?(www\.)?[-a-zA-Z0-9@:%._\+~#=]{1,253}\.[a-z]{2,6}\b([-a-zA-Z0-9@:%_\+.~#()?&//=]*) + confirmationResponse: + type: string + minLength: 0 + maxLength: 500 + nullable: true + example: Thank you for opting in! isvReseller: type: string description: ISV name. @@ -6079,6 +6211,22 @@ components: $ref: '#/components/schemas/termsAndConditionsUrl' businessDba: $ref: '#/components/schemas/businessDba' + businessRegistrationNumber: + $ref: '#/components/schemas/businessRegistrationNumber' + description: >- + US Federal Tax ID Number (EIN) or Canada Business Number (CBN). + Available starting October 1st, 2025. + businessRegistrationType: + $ref: '#/components/schemas/businessRegistrationTypeEnum' + description: >- + The type of business registration number. Available starting October + 1st, 2025. + businessEntityType: + $ref: '#/components/schemas/businessEntityTypeEnum' + description: >- + The type of registered business. If no option is applicable, please + provide "SOLE_PROPRIETOR" as a value. Available starting October + 1st, 2025. tfvStatusEnum: type: string enum: @@ -6940,6 +7088,112 @@ components: example: CJEUMDK schema: type: string + fromBwLatency: + in: query + name: fromBwLatency + required: false + description: >- + The minimum Bandwidth latency of the message in seconds. Only available + for accounts with the Advanced Quality Metrics feature enabled. + example: 5 + schema: + type: integer + bwQueued: + in: query + name: bwQueued + required: false + description: >- + A boolean value indicating whether the message is queued in the + Bandwidth network. + example: true + schema: + type: boolean + product: + in: query + name: product + required: false + description: Messaging product associated with the message. + example: P2P + schema: + $ref: '#/components/schemas/productTypeEnum' + location: + in: query + name: location + required: false + description: Location Id associated with the message. + example: 123ABC + schema: + type: string + carrierQueued: + in: query + name: carrierQueued + required: false + description: >- + A boolean value indicating whether the message is queued in the carrier + network. Only available for OUTBOUND messages from accounts with the + Advanced Quality Metrics feature enabled. + example: true + schema: + type: boolean + fromCarrierLatency: + in: query + name: fromCarrierLatency + required: false + description: >- + The minimum carrier latency of the message in seconds. Only available + for OUTBOUND messages from accounts with the Advanced Quality Metrics + feature enabled. + example: 50 + schema: + type: integer + callingNumberCountryA3: + in: query + name: callingNumberCountryA3 + required: false + description: Calling number country in A3 format. + example: USA + schema: + type: string + calledNumberCountryA3: + in: query + name: calledNumberCountryA3 + required: false + description: Called number country in A3 format. + example: USA + schema: + type: string + fromSegmentCount: + in: query + name: fromSegmentCount + required: false + description: Segment count (start range). + example: 1 + schema: + type: integer + toSegmentCount: + in: query + name: toSegmentCount + required: false + description: Segment count (end range). + example: 3 + schema: + type: integer + fromMessageSize: + in: query + name: fromMessageSize + required: false + description: Message size (start range). + example: 100 + schema: + type: integer + toMessageSize: + in: query + name: toMessageSize + required: false + description: Message size (end range). + example: 120 + schema: + type: integer sort: in: query name: sort diff --git a/docs/BusinessEntityTypeEnum.md b/docs/BusinessEntityTypeEnum.md new file mode 100644 index 0000000..c624086 --- /dev/null +++ b/docs/BusinessEntityTypeEnum.md @@ -0,0 +1,17 @@ +# BusinessEntityTypeEnum + +The type of registered business. If no option is applicable, please provide \"SOLE_PROPRIETOR\" as a value. Optional until early 2026; required if `businessRegistrationNumber` is provided. Available starting October 1st, 2025. + +## Enum + +* `SoleProprietor` (value: `'SOLE_PROPRIETOR'`) + +* `PrivateProfit` (value: `'PRIVATE_PROFIT'`) + +* `PublicProfit` (value: `'PUBLIC_PROFIT'`) + +* `NonProfit` (value: `'NON_PROFIT'`) + +* `Government` (value: `'GOVERNMENT'`) + +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) diff --git a/docs/BusinessRegistrationTypeEnum.md b/docs/BusinessRegistrationTypeEnum.md new file mode 100644 index 0000000..f6228fa --- /dev/null +++ b/docs/BusinessRegistrationTypeEnum.md @@ -0,0 +1,11 @@ +# BusinessRegistrationTypeEnum + +The type of business registration number. Optional until early 2026; required if `businessRegistrationNumber` is provided. Available starting October 1st, 2025. + +## Enum + +* `Ein` (value: `'EIN'`) + +* `Cbn` (value: `'CBN'`) + +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) diff --git a/docs/ListMessageItem.md b/docs/ListMessageItem.md index f1ef376..127048b 100644 --- a/docs/ListMessageItem.md +++ b/docs/ListMessageItem.md @@ -22,6 +22,12 @@ Name | Type | Description | Notes **recipientCount** | **number** | The number of recipients the message has. | [optional] [default to undefined] **campaignClass** | **string** | The campaign class of the message if it has one. | [optional] [default to undefined] **campaignId** | **string** | The campaign ID of the message if it has one. | [optional] [default to undefined] +**bwLatency** | **number** | The Bandwidth latency of the message in seconds. Only available for accounts with the Advanced Quality Metrics feature enabled. | [optional] [default to undefined] +**carrierLatency** | **number** | The carrier latency of the message in seconds. Only available for OUTBOUND messages from accounts with the Advanced Quality Metrics feature enabled. | [optional] [default to undefined] +**callingNumberCountryA3** | **string** | The A3 country code of the calling number. | [optional] [default to undefined] +**calledNumberCountryA3** | **string** | The A3 country code of the called number. | [optional] [default to undefined] +**product** | **string** | The messaging product associated with the message. | [optional] [default to undefined] +**location** | **string** | The location ID associated with this message. | [optional] [default to undefined] ## Example @@ -46,6 +52,12 @@ const instance: ListMessageItem = { recipientCount, campaignClass, campaignId, + bwLatency, + carrierLatency, + callingNumberCountryA3, + calledNumberCountryA3, + product, + location, }; ``` diff --git a/docs/MessageTypeEnum.md b/docs/MessageTypeEnum.md index 3df44cf..0ec9a03 100644 --- a/docs/MessageTypeEnum.md +++ b/docs/MessageTypeEnum.md @@ -8,4 +8,6 @@ The type of message. Either SMS or MMS. * `Mms` (value: `'mms'`) +* `Rcs` (value: `'rcs'`) + [[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) diff --git a/docs/MessagesApi.md b/docs/MessagesApi.md index 8b8afb1..517a6c7 100644 --- a/docs/MessagesApi.md +++ b/docs/MessagesApi.md @@ -99,6 +99,18 @@ let errorCode: number; //The error code of the message. (optional) (default to u let fromDateTime: string; //The start of the date range to search in ISO 8601 format. Uses the message receive time. The date range to search in is currently 14 days. (optional) (default to undefined) let toDateTime: string; //The end of the date range to search in ISO 8601 format. Uses the message receive time. The date range to search in is currently 14 days. (optional) (default to undefined) let campaignId: string; //The campaign ID of the message. (optional) (default to undefined) +let fromBwLatency: number; //The minimum Bandwidth latency of the message in seconds. Only available for accounts with the Advanced Quality Metrics feature enabled. (optional) (default to undefined) +let bwQueued: boolean; //A boolean value indicating whether the message is queued in the Bandwidth network. (optional) (default to undefined) +let product: ProductTypeEnum; //Messaging product associated with the message. (optional) (default to undefined) +let location: string; //Location Id associated with the message. (optional) (default to undefined) +let carrierQueued: boolean; //A boolean value indicating whether the message is queued in the carrier network. Only available for OUTBOUND messages from accounts with the Advanced Quality Metrics feature enabled. (optional) (default to undefined) +let fromCarrierLatency: number; //The minimum carrier latency of the message in seconds. Only available for OUTBOUND messages from accounts with the Advanced Quality Metrics feature enabled. (optional) (default to undefined) +let callingNumberCountryA3: string; //Calling number country in A3 format. (optional) (default to undefined) +let calledNumberCountryA3: string; //Called number country in A3 format. (optional) (default to undefined) +let fromSegmentCount: number; //Segment count (start range). (optional) (default to undefined) +let toSegmentCount: number; //Segment count (end range). (optional) (default to undefined) +let fromMessageSize: number; //Message size (start range). (optional) (default to undefined) +let toMessageSize: number; //Message size (end range). (optional) (default to undefined) let sort: string; //The field and direction to sort by combined with a colon. Direction is either asc or desc. (optional) (default to undefined) let pageToken: string; //A base64 encoded value used for pagination of results. (optional) (default to undefined) let limit: number; //The maximum records requested in search result. Default 100. The sum of limit and after cannot be more than 10000. (optional) (default to undefined) @@ -117,6 +129,18 @@ const { status, data } = await apiInstance.listMessages( fromDateTime, toDateTime, campaignId, + fromBwLatency, + bwQueued, + product, + location, + carrierQueued, + fromCarrierLatency, + callingNumberCountryA3, + calledNumberCountryA3, + fromSegmentCount, + toSegmentCount, + fromMessageSize, + toMessageSize, sort, pageToken, limit, @@ -140,6 +164,18 @@ const { status, data } = await apiInstance.listMessages( | **fromDateTime** | [**string**] | The start of the date range to search in ISO 8601 format. Uses the message receive time. The date range to search in is currently 14 days. | (optional) defaults to undefined| | **toDateTime** | [**string**] | The end of the date range to search in ISO 8601 format. Uses the message receive time. The date range to search in is currently 14 days. | (optional) defaults to undefined| | **campaignId** | [**string**] | The campaign ID of the message. | (optional) defaults to undefined| +| **fromBwLatency** | [**number**] | The minimum Bandwidth latency of the message in seconds. Only available for accounts with the Advanced Quality Metrics feature enabled. | (optional) defaults to undefined| +| **bwQueued** | [**boolean**] | A boolean value indicating whether the message is queued in the Bandwidth network. | (optional) defaults to undefined| +| **product** | **ProductTypeEnum** | Messaging product associated with the message. | (optional) defaults to undefined| +| **location** | [**string**] | Location Id associated with the message. | (optional) defaults to undefined| +| **carrierQueued** | [**boolean**] | A boolean value indicating whether the message is queued in the carrier network. Only available for OUTBOUND messages from accounts with the Advanced Quality Metrics feature enabled. | (optional) defaults to undefined| +| **fromCarrierLatency** | [**number**] | The minimum carrier latency of the message in seconds. Only available for OUTBOUND messages from accounts with the Advanced Quality Metrics feature enabled. | (optional) defaults to undefined| +| **callingNumberCountryA3** | [**string**] | Calling number country in A3 format. | (optional) defaults to undefined| +| **calledNumberCountryA3** | [**string**] | Called number country in A3 format. | (optional) defaults to undefined| +| **fromSegmentCount** | [**number**] | Segment count (start range). | (optional) defaults to undefined| +| **toSegmentCount** | [**number**] | Segment count (end range). | (optional) defaults to undefined| +| **fromMessageSize** | [**number**] | Message size (start range). | (optional) defaults to undefined| +| **toMessageSize** | [**number**] | Message size (end range). | (optional) defaults to undefined| | **sort** | [**string**] | The field and direction to sort by combined with a colon. Direction is either asc or desc. | (optional) defaults to undefined| | **pageToken** | [**string**] | A base64 encoded value used for pagination of results. | (optional) defaults to undefined| | **limit** | [**number**] | The maximum records requested in search result. Default 100. The sum of limit and after cannot be more than 10000. | (optional) defaults to undefined| diff --git a/docs/OptInWorkflow.md b/docs/OptInWorkflow.md index b9ea1a6..9526311 100644 --- a/docs/OptInWorkflow.md +++ b/docs/OptInWorkflow.md @@ -7,6 +7,7 @@ Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- **description** | **string** | | [default to undefined] **imageUrls** | **Array<string>** | | [default to undefined] +**confirmationResponse** | **string** | | [optional] [default to undefined] ## Example @@ -16,6 +17,7 @@ import { OptInWorkflow } from 'bandwidth-sdk'; const instance: OptInWorkflow = { description, imageUrls, + confirmationResponse, }; ``` diff --git a/docs/ProductTypeEnum.md b/docs/ProductTypeEnum.md new file mode 100644 index 0000000..d28c57f --- /dev/null +++ b/docs/ProductTypeEnum.md @@ -0,0 +1,25 @@ +# ProductTypeEnum + +The type of product associated with the message. + +## Enum + +* `LocalA2P` (value: `'LOCAL_A2P'`) + +* `P2P` (value: `'P2P'`) + +* `ShortCodeReach` (value: `'SHORT_CODE_REACH'`) + +* `TollFree` (value: `'TOLL_FREE'`) + +* `HostedShortCode` (value: `'HOSTED_SHORT_CODE'`) + +* `AlphaNumeric` (value: `'ALPHA_NUMERIC'`) + +* `RbmMedia` (value: `'RBM_MEDIA'`) + +* `RbmRich` (value: `'RBM_RICH'`) + +* `RbmConversational` (value: `'RBM_CONVERSATIONAL'`) + +[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md) diff --git a/docs/TfvSubmissionInfo.md b/docs/TfvSubmissionInfo.md index 55b3f79..e0faaad 100644 --- a/docs/TfvSubmissionInfo.md +++ b/docs/TfvSubmissionInfo.md @@ -17,6 +17,9 @@ Name | Type | Description | Notes **privacyPolicyUrl** | **string** | The Toll-Free Verification request privacy policy URL. | [optional] [default to undefined] **termsAndConditionsUrl** | **string** | The Toll-Free Verification request terms and conditions policy URL. | [optional] [default to undefined] **businessDba** | **string** | The company \'Doing Business As\'. | [optional] [default to undefined] +**businessRegistrationNumber** | **string** | US Federal Tax ID Number (EIN) or Canada Business Number (CBN). Optional until early 2026. If a value is provided for this field, a value must be provided for `businessRegistrationType` and `businessEntityType`. Available starting October 1st, 2025. | [optional] [default to undefined] +**businessRegistrationType** | [**BusinessRegistrationTypeEnum**](BusinessRegistrationTypeEnum.md) | | [optional] [default to undefined] +**businessEntityType** | [**BusinessEntityTypeEnum**](BusinessEntityTypeEnum.md) | | [optional] [default to undefined] ## Example @@ -36,6 +39,9 @@ const instance: TfvSubmissionInfo = { privacyPolicyUrl, termsAndConditionsUrl, businessDba, + businessRegistrationNumber, + businessRegistrationType, + businessEntityType, }; ``` diff --git a/docs/VerificationRequest.md b/docs/VerificationRequest.md index a1781d6..7071e56 100644 --- a/docs/VerificationRequest.md +++ b/docs/VerificationRequest.md @@ -18,6 +18,11 @@ Name | Type | Description | Notes **privacyPolicyUrl** | **string** | The Toll-Free Verification request privacy policy URL. | [optional] [default to undefined] **termsAndConditionsUrl** | **string** | The Toll-Free Verification request terms and conditions policy URL. | [optional] [default to undefined] **businessDba** | **string** | The company \'Doing Business As\'. | [optional] [default to undefined] +**businessRegistrationNumber** | **string** | US Federal Tax ID Number (EIN) or Canada Business Number (CBN). Optional until early 2026. If a value is provided for this field, a value must be provided for `businessRegistrationType` and `businessEntityType`. Available starting October 1st, 2025. | [optional] [default to undefined] +**businessRegistrationType** | [**BusinessRegistrationTypeEnum**](BusinessRegistrationTypeEnum.md) | | [optional] [default to undefined] +**businessEntityType** | [**BusinessEntityTypeEnum**](BusinessEntityTypeEnum.md) | | [optional] [default to undefined] +**helpMessageResponse** | **string** | A message that gets sent to users requesting help. | [optional] [default to undefined] +**ageGatedContent** | **boolean** | Indicates whether the content is age-gated. | [optional] [default to undefined] ## Example @@ -38,6 +43,11 @@ const instance: VerificationRequest = { privacyPolicyUrl, termsAndConditionsUrl, businessDba, + businessRegistrationNumber, + businessRegistrationType, + businessEntityType, + helpMessageResponse, + ageGatedContent, }; ``` diff --git a/docs/VerificationUpdateRequest.md b/docs/VerificationUpdateRequest.md index b407dcc..a372076 100644 --- a/docs/VerificationUpdateRequest.md +++ b/docs/VerificationUpdateRequest.md @@ -17,6 +17,11 @@ Name | Type | Description | Notes **privacyPolicyUrl** | **string** | The Toll-Free Verification request privacy policy URL. | [optional] [default to undefined] **termsAndConditionsUrl** | **string** | The Toll-Free Verification request terms and conditions policy URL. | [optional] [default to undefined] **businessDba** | **string** | The company \'Doing Business As\'. | [optional] [default to undefined] +**businessRegistrationNumber** | **string** | US Federal Tax ID Number (EIN) or Canada Business Number (CBN). Optional until early 2026. If a value is provided for this field, a value must be provided for `businessRegistrationType` and `businessEntityType`. Available starting October 1st, 2025. | [optional] [default to undefined] +**businessRegistrationType** | [**BusinessRegistrationTypeEnum**](BusinessRegistrationTypeEnum.md) | | [optional] [default to undefined] +**businessEntityType** | [**BusinessEntityTypeEnum**](BusinessEntityTypeEnum.md) | | [optional] [default to undefined] +**helpMessageResponse** | **string** | A message that gets sent to users requesting help. | [optional] [default to undefined] +**ageGatedContent** | **boolean** | Indicates whether the content is age-gated. | [optional] [default to undefined] ## Example @@ -36,6 +41,11 @@ const instance: VerificationUpdateRequest = { privacyPolicyUrl, termsAndConditionsUrl, businessDba, + businessRegistrationNumber, + businessRegistrationType, + businessEntityType, + helpMessageResponse, + ageGatedContent, }; ``` diff --git a/models/business-entity-type-enum.ts b/models/business-entity-type-enum.ts new file mode 100644 index 0000000..074ef54 --- /dev/null +++ b/models/business-entity-type-enum.ts @@ -0,0 +1,34 @@ +/* tslint:disable */ +/* eslint-disable */ +/** + * Bandwidth + * Bandwidth\'s Communication APIs + * + * The version of the OpenAPI document: 1.0.0 + * Contact: letstalk@bandwidth.com + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + + +/** + * The type of registered business. If no option is applicable, please provide \"SOLE_PROPRIETOR\" as a value. Optional until early 2026; required if `businessRegistrationNumber` is provided. Available starting October 1st, 2025. + * @export + * @enum {string} + */ + +export const BusinessEntityTypeEnum = { + SoleProprietor: 'SOLE_PROPRIETOR', + PrivateProfit: 'PRIVATE_PROFIT', + PublicProfit: 'PUBLIC_PROFIT', + NonProfit: 'NON_PROFIT', + Government: 'GOVERNMENT' +} as const; + +export type BusinessEntityTypeEnum = typeof BusinessEntityTypeEnum[keyof typeof BusinessEntityTypeEnum]; + + + diff --git a/models/business-registration-type-enum.ts b/models/business-registration-type-enum.ts new file mode 100644 index 0000000..df314b6 --- /dev/null +++ b/models/business-registration-type-enum.ts @@ -0,0 +1,31 @@ +/* tslint:disable */ +/* eslint-disable */ +/** + * Bandwidth + * Bandwidth\'s Communication APIs + * + * The version of the OpenAPI document: 1.0.0 + * Contact: letstalk@bandwidth.com + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + + +/** + * The type of business registration number. Optional until early 2026; required if `businessRegistrationNumber` is provided. Available starting October 1st, 2025. + * @export + * @enum {string} + */ + +export const BusinessRegistrationTypeEnum = { + Ein: 'EIN', + Cbn: 'CBN' +} as const; + +export type BusinessRegistrationTypeEnum = typeof BusinessRegistrationTypeEnum[keyof typeof BusinessRegistrationTypeEnum]; + + + diff --git a/models/index.ts b/models/index.ts index 5b09d32..d85bb94 100644 --- a/models/index.ts +++ b/models/index.ts @@ -5,6 +5,8 @@ export * from './answer-callback'; export * from './blocked-webhook'; export * from './bridge-complete-callback'; export * from './bridge-target-complete-callback'; +export * from './business-entity-type-enum'; +export * from './business-registration-type-enum'; export * from './call-direction-enum'; export * from './call-recording-metadata'; export * from './call-state'; @@ -87,6 +89,7 @@ export * from './multi-channel-message-response-data-channel-list-inner'; export * from './opt-in-workflow'; export * from './page-info'; export * from './priority-enum'; +export * from './product-type-enum'; export * from './rbm-action-base'; export * from './rbm-action-dial'; export * from './rbm-action-open-url'; diff --git a/models/list-message-item.ts b/models/list-message-item.ts index 9a20646..45aa7d1 100644 --- a/models/list-message-item.ts +++ b/models/list-message-item.ts @@ -131,6 +131,42 @@ export interface ListMessageItem { * @memberof ListMessageItem */ 'campaignId'?: string | null; + /** + * The Bandwidth latency of the message in seconds. Only available for accounts with the Advanced Quality Metrics feature enabled. + * @type {number} + * @memberof ListMessageItem + */ + 'bwLatency'?: number | null; + /** + * The carrier latency of the message in seconds. Only available for OUTBOUND messages from accounts with the Advanced Quality Metrics feature enabled. + * @type {number} + * @memberof ListMessageItem + */ + 'carrierLatency'?: number | null; + /** + * The A3 country code of the calling number. + * @type {string} + * @memberof ListMessageItem + */ + 'callingNumberCountryA3'?: string | null; + /** + * The A3 country code of the called number. + * @type {string} + * @memberof ListMessageItem + */ + 'calledNumberCountryA3'?: string | null; + /** + * The messaging product associated with the message. + * @type {string} + * @memberof ListMessageItem + */ + 'product'?: string | null; + /** + * The location ID associated with this message. + * @type {string} + * @memberof ListMessageItem + */ + 'location'?: string | null; } diff --git a/models/message-type-enum.ts b/models/message-type-enum.ts index c5476d5..4290875 100644 --- a/models/message-type-enum.ts +++ b/models/message-type-enum.ts @@ -22,7 +22,8 @@ export const MessageTypeEnum = { Sms: 'sms', - Mms: 'mms' + Mms: 'mms', + Rcs: 'rcs' } as const; export type MessageTypeEnum = typeof MessageTypeEnum[keyof typeof MessageTypeEnum]; diff --git a/models/opt-in-workflow.ts b/models/opt-in-workflow.ts index 33523fa..2e85892 100644 --- a/models/opt-in-workflow.ts +++ b/models/opt-in-workflow.ts @@ -32,5 +32,11 @@ export interface OptInWorkflow { * @memberof OptInWorkflow */ 'imageUrls': Array; + /** + * + * @type {string} + * @memberof OptInWorkflow + */ + 'confirmationResponse'?: string | null; } diff --git a/models/product-type-enum.ts b/models/product-type-enum.ts new file mode 100644 index 0000000..af1ab1e --- /dev/null +++ b/models/product-type-enum.ts @@ -0,0 +1,38 @@ +/* tslint:disable */ +/* eslint-disable */ +/** + * Bandwidth + * Bandwidth\'s Communication APIs + * + * The version of the OpenAPI document: 1.0.0 + * Contact: letstalk@bandwidth.com + * + * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + * https://openapi-generator.tech + * Do not edit the class manually. + */ + + + +/** + * The type of product associated with the message. + * @export + * @enum {string} + */ + +export const ProductTypeEnum = { + LocalA2P: 'LOCAL_A2P', + P2P: 'P2P', + ShortCodeReach: 'SHORT_CODE_REACH', + TollFree: 'TOLL_FREE', + HostedShortCode: 'HOSTED_SHORT_CODE', + AlphaNumeric: 'ALPHA_NUMERIC', + RbmMedia: 'RBM_MEDIA', + RbmRich: 'RBM_RICH', + RbmConversational: 'RBM_CONVERSATIONAL' +} as const; + +export type ProductTypeEnum = typeof ProductTypeEnum[keyof typeof ProductTypeEnum]; + + + diff --git a/models/tfv-submission-info.ts b/models/tfv-submission-info.ts index 5f26214..57c2410 100644 --- a/models/tfv-submission-info.ts +++ b/models/tfv-submission-info.ts @@ -18,6 +18,12 @@ import type { Address } from './address'; // May contain unused imports in some cases // @ts-ignore +import type { BusinessEntityTypeEnum } from './business-entity-type-enum'; +// May contain unused imports in some cases +// @ts-ignore +import type { BusinessRegistrationTypeEnum } from './business-registration-type-enum'; +// May contain unused imports in some cases +// @ts-ignore import type { Contact } from './contact'; // May contain unused imports in some cases // @ts-ignore @@ -101,5 +107,25 @@ export interface TfvSubmissionInfo { * @memberof TfvSubmissionInfo */ 'businessDba'?: string; + /** + * US Federal Tax ID Number (EIN) or Canada Business Number (CBN). Optional until early 2026. If a value is provided for this field, a value must be provided for `businessRegistrationType` and `businessEntityType`. Available starting October 1st, 2025. + * @type {string} + * @memberof TfvSubmissionInfo + */ + 'businessRegistrationNumber'?: string | null; + /** + * + * @type {BusinessRegistrationTypeEnum} + * @memberof TfvSubmissionInfo + */ + 'businessRegistrationType'?: BusinessRegistrationTypeEnum | null; + /** + * + * @type {BusinessEntityTypeEnum} + * @memberof TfvSubmissionInfo + */ + 'businessEntityType'?: BusinessEntityTypeEnum | null; } + + diff --git a/models/verification-request.ts b/models/verification-request.ts index c8e7c2d..4e63541 100644 --- a/models/verification-request.ts +++ b/models/verification-request.ts @@ -18,6 +18,12 @@ import type { Address } from './address'; // May contain unused imports in some cases // @ts-ignore +import type { BusinessEntityTypeEnum } from './business-entity-type-enum'; +// May contain unused imports in some cases +// @ts-ignore +import type { BusinessRegistrationTypeEnum } from './business-registration-type-enum'; +// May contain unused imports in some cases +// @ts-ignore import type { Contact } from './contact'; // May contain unused imports in some cases // @ts-ignore @@ -107,5 +113,37 @@ export interface VerificationRequest { * @memberof VerificationRequest */ 'businessDba'?: string; + /** + * US Federal Tax ID Number (EIN) or Canada Business Number (CBN). Optional until early 2026. If a value is provided for this field, a value must be provided for `businessRegistrationType` and `businessEntityType`. Available starting October 1st, 2025. + * @type {string} + * @memberof VerificationRequest + */ + 'businessRegistrationNumber'?: string | null; + /** + * + * @type {BusinessRegistrationTypeEnum} + * @memberof VerificationRequest + */ + 'businessRegistrationType'?: BusinessRegistrationTypeEnum | null; + /** + * + * @type {BusinessEntityTypeEnum} + * @memberof VerificationRequest + */ + 'businessEntityType'?: BusinessEntityTypeEnum | null; + /** + * A message that gets sent to users requesting help. + * @type {string} + * @memberof VerificationRequest + */ + 'helpMessageResponse'?: string | null; + /** + * Indicates whether the content is age-gated. + * @type {boolean} + * @memberof VerificationRequest + */ + 'ageGatedContent'?: boolean; } + + diff --git a/models/verification-update-request.ts b/models/verification-update-request.ts index 624fc49..d2e3b6d 100644 --- a/models/verification-update-request.ts +++ b/models/verification-update-request.ts @@ -18,6 +18,12 @@ import type { Address } from './address'; // May contain unused imports in some cases // @ts-ignore +import type { BusinessEntityTypeEnum } from './business-entity-type-enum'; +// May contain unused imports in some cases +// @ts-ignore +import type { BusinessRegistrationTypeEnum } from './business-registration-type-enum'; +// May contain unused imports in some cases +// @ts-ignore import type { Contact } from './contact'; // May contain unused imports in some cases // @ts-ignore @@ -101,5 +107,37 @@ export interface VerificationUpdateRequest { * @memberof VerificationUpdateRequest */ 'businessDba'?: string; + /** + * US Federal Tax ID Number (EIN) or Canada Business Number (CBN). Optional until early 2026. If a value is provided for this field, a value must be provided for `businessRegistrationType` and `businessEntityType`. Available starting October 1st, 2025. + * @type {string} + * @memberof VerificationUpdateRequest + */ + 'businessRegistrationNumber'?: string | null; + /** + * + * @type {BusinessRegistrationTypeEnum} + * @memberof VerificationUpdateRequest + */ + 'businessRegistrationType'?: BusinessRegistrationTypeEnum | null; + /** + * + * @type {BusinessEntityTypeEnum} + * @memberof VerificationUpdateRequest + */ + 'businessEntityType'?: BusinessEntityTypeEnum | null; + /** + * A message that gets sent to users requesting help. + * @type {string} + * @memberof VerificationUpdateRequest + */ + 'helpMessageResponse'?: string | null; + /** + * Indicates whether the content is age-gated. + * @type {boolean} + * @memberof VerificationUpdateRequest + */ + 'ageGatedContent'?: boolean; } + + From 1811190846d68c36ee18172d2918d6ab57400753 Mon Sep 17 00:00:00 2001 From: ckoegel Date: Thu, 4 Sep 2025 16:41:37 -0400 Subject: [PATCH 2/3] unit tests --- tests/unit/api/messages-api.test.ts | 6 ++++++ .../unit/models/business-entity-type-enum.test.ts | 11 +++++++++++ .../business-registration-type-enum.test.ts | 8 ++++++++ tests/unit/models/message-type-enum.test.ts | 1 + tests/unit/models/product-type-enum.test.ts | 15 +++++++++++++++ 5 files changed, 41 insertions(+) create mode 100644 tests/unit/models/business-entity-type-enum.test.ts create mode 100644 tests/unit/models/business-registration-type-enum.test.ts create mode 100644 tests/unit/models/product-type-enum.test.ts diff --git a/tests/unit/api/messages-api.test.ts b/tests/unit/api/messages-api.test.ts index 736c194..9137752 100644 --- a/tests/unit/api/messages-api.test.ts +++ b/tests/unit/api/messages-api.test.ts @@ -87,6 +87,12 @@ describe('MessagesApi', () => { expect(data.messages![0].recipientCount).toBeInteger(); expect(data.messages![0].campaignClass).toBeString(); expect(data.messages![0].campaignId).toBeString(); + expect(data.messages![0].bwLatency).toBeInteger(); + expect(data.messages![0].carrierLatency).toBeInteger(); + expect(data.messages![0].callingNumberCountryA3).toBeString(); + expect(data.messages![0].calledNumberCountryA3).toBeString(); + expect(data.messages![0].product).toBeString(); + expect(data.messages![0].location).toBeString(); }); }); diff --git a/tests/unit/models/business-entity-type-enum.test.ts b/tests/unit/models/business-entity-type-enum.test.ts new file mode 100644 index 0000000..b70dd70 --- /dev/null +++ b/tests/unit/models/business-entity-type-enum.test.ts @@ -0,0 +1,11 @@ +import { BusinessEntityTypeEnum } from '../../../models/business-entity-type-enum'; + +describe('BusinessEntityTypeEnum', () => { + test('should define the expected values', () => { + expect(BusinessEntityTypeEnum.SoleProprietor).toBe('SOLE_PROPRIETOR'); + expect(BusinessEntityTypeEnum.PrivateProfit).toBe('PRIVATE_PROFIT'); + expect(BusinessEntityTypeEnum.PublicProfit).toBe('PUBLIC_PROFIT'); + expect(BusinessEntityTypeEnum.NonProfit).toBe('NON_PROFIT'); + expect(BusinessEntityTypeEnum.Government).toBe('GOVERNMENT'); + }); +}); diff --git a/tests/unit/models/business-registration-type-enum.test.ts b/tests/unit/models/business-registration-type-enum.test.ts new file mode 100644 index 0000000..0cc98e7 --- /dev/null +++ b/tests/unit/models/business-registration-type-enum.test.ts @@ -0,0 +1,8 @@ +import { BusinessRegistrationTypeEnum } from '../../../models/business-registration-type-enum'; + +describe('BusinessRegistrationTypeEnum', () => { + test('should define the expected values', () => { + expect(BusinessRegistrationTypeEnum.Ein).toBe('EIN'); + expect(BusinessRegistrationTypeEnum.Cbn).toBe('CBN'); + }); +}); diff --git a/tests/unit/models/message-type-enum.test.ts b/tests/unit/models/message-type-enum.test.ts index c7d7883..f143faa 100644 --- a/tests/unit/models/message-type-enum.test.ts +++ b/tests/unit/models/message-type-enum.test.ts @@ -4,5 +4,6 @@ describe('MessageTypeEnum', () => { test('should define the expected values', () => { expect(MessageTypeEnum.Sms).toBe('sms'); expect(MessageTypeEnum.Mms).toBe('mms'); + expect(MessageTypeEnum.Rcs).toBe('rcs'); }); }); diff --git a/tests/unit/models/product-type-enum.test.ts b/tests/unit/models/product-type-enum.test.ts new file mode 100644 index 0000000..2c61992 --- /dev/null +++ b/tests/unit/models/product-type-enum.test.ts @@ -0,0 +1,15 @@ +import { ProductTypeEnum } from '../../../models/product-type-enum'; + +describe('ProductTypeEnum', () => { + test('should define the expected values', () => { + expect(ProductTypeEnum.LocalA2P).toBe('LOCAL_A2P'); + expect(ProductTypeEnum.P2P).toBe('P2P'); + expect(ProductTypeEnum.ShortCodeReach).toBe('SHORT_CODE_REACH'); + expect(ProductTypeEnum.TollFree).toBe('TOLL_FREE'); + expect(ProductTypeEnum.HostedShortCode).toBe('HOSTED_SHORT_CODE'); + expect(ProductTypeEnum.AlphaNumeric).toBe('ALPHA_NUMERIC'); + expect(ProductTypeEnum.RbmMedia).toBe('RBM_MEDIA'); + expect(ProductTypeEnum.RbmRich).toBe('RBM_RICH'); + expect(ProductTypeEnum.RbmConversational).toBe('RBM_CONVERSATIONAL'); + }); +}); From cd29bee7cdad3bea861ec8cbf75e34ee5e614268 Mon Sep 17 00:00:00 2001 From: ckoegel Date: Thu, 4 Sep 2025 16:50:28 -0400 Subject: [PATCH 3/3] update smoke test --- tests/smoke/messages-api.test.ts | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/tests/smoke/messages-api.test.ts b/tests/smoke/messages-api.test.ts index 730d2d9..a43734b 100644 --- a/tests/smoke/messages-api.test.ts +++ b/tests/smoke/messages-api.test.ts @@ -13,6 +13,7 @@ describe('MessagesApi', () => { const smsTag = 'nodejs sdk test SMS tag'; const mediaUrl = 'https://cdn2.thecatapi.com/images/MTY3ODk4Mg.jpg'; const priority = PriorityEnum.High; + const callingNumberCountryA3 = 'USA'; const listMessageDirection = ListMessageDirectionEnum.Outbound; const expirationTime = Date.now() + 1000 * 60 * 60 * 24 + 60; const expiration = new Date(expirationTime).toISOString(); @@ -67,7 +68,10 @@ describe('MessagesApi', () => { describe('listMessages', () => { test('should list messages', async () => { const { status, data } = - await messagesApi.listMessages(BW_ACCOUNT_ID, undefined, BW_NUMBER, undefined, undefined, listMessageDirection); + await messagesApi.listMessages(BW_ACCOUNT_ID, undefined, BW_NUMBER, + undefined, undefined, listMessageDirection, undefined, undefined, + undefined, undefined, undefined, undefined, undefined, undefined, + undefined, undefined, undefined, undefined, callingNumberCountryA3); expect(status).toEqual(200); expect(data.messages).toBeInstanceOf(Array); @@ -75,6 +79,7 @@ describe('MessagesApi', () => { expect(data.messages![0].messageId).toHaveLength(29); expect(data.messages![0].sourceTn).toEqual(BW_NUMBER); expect(data.messages![0].messageDirection).toEqual(listMessageDirection); + expect(data.messages![0].callingNumberCountryA3).toEqual(callingNumberCountryA3); }); });