diff --git a/.openapi-generator/FILES b/.openapi-generator/FILES index f51b865..301d629 100644 --- a/.openapi-generator/FILES +++ b/.openapi-generator/FILES @@ -113,14 +113,22 @@ docs/MmsMessageContentFile.md docs/MultiChannelAction.md docs/MultiChannelActionCalendarEvent.md docs/MultiChannelApi.md -docs/MultiChannelChannelListObject.md -docs/MultiChannelChannelListObjectContent.md +docs/MultiChannelChannelListMMSObject.md +docs/MultiChannelChannelListMMSResponseObject.md +docs/MultiChannelChannelListObjectBase.md +docs/MultiChannelChannelListOwnerObject.md +docs/MultiChannelChannelListRBMObject.md +docs/MultiChannelChannelListRBMObjectAllOfContent.md +docs/MultiChannelChannelListRBMResponseObject.md +docs/MultiChannelChannelListRequestObject.md +docs/MultiChannelChannelListResponseObject.md +docs/MultiChannelChannelListSMSObject.md +docs/MultiChannelChannelListSMSResponseObject.md docs/MultiChannelError.md docs/MultiChannelMessageChannelEnum.md docs/MultiChannelMessageContent.md docs/MultiChannelMessageRequest.md docs/MultiChannelMessageResponseData.md -docs/MultiChannelMessageResponseDataChannelListInner.md docs/OptInWorkflow.md docs/PageInfo.md docs/PhoneNumberLookupApi.md @@ -287,13 +295,21 @@ models/mms-message-content.ts models/model-error.ts models/multi-channel-action-calendar-event.ts models/multi-channel-action.ts -models/multi-channel-channel-list-object-content.ts -models/multi-channel-channel-list-object.ts +models/multi-channel-channel-list-mmsobject.ts +models/multi-channel-channel-list-mmsresponse-object.ts +models/multi-channel-channel-list-object-base.ts +models/multi-channel-channel-list-owner-object.ts +models/multi-channel-channel-list-rbmobject-all-of-content.ts +models/multi-channel-channel-list-rbmobject.ts +models/multi-channel-channel-list-rbmresponse-object.ts +models/multi-channel-channel-list-request-object.ts +models/multi-channel-channel-list-response-object.ts +models/multi-channel-channel-list-smsobject.ts +models/multi-channel-channel-list-smsresponse-object.ts models/multi-channel-error.ts models/multi-channel-message-channel-enum.ts models/multi-channel-message-content.ts models/multi-channel-message-request.ts -models/multi-channel-message-response-data-channel-list-inner.ts models/multi-channel-message-response-data.ts models/opt-in-workflow.ts models/page-info.ts diff --git a/README.md b/README.md index e145029..239dfbe 100644 --- a/README.md +++ b/README.md @@ -252,14 +252,22 @@ Class | Method | HTTP request | Description - [ModelError](docs/ModelError.md) - [MultiChannelAction](docs/MultiChannelAction.md) - [MultiChannelActionCalendarEvent](docs/MultiChannelActionCalendarEvent.md) - - [MultiChannelChannelListObject](docs/MultiChannelChannelListObject.md) - - [MultiChannelChannelListObjectContent](docs/MultiChannelChannelListObjectContent.md) + - [MultiChannelChannelListMMSObject](docs/MultiChannelChannelListMMSObject.md) + - [MultiChannelChannelListMMSResponseObject](docs/MultiChannelChannelListMMSResponseObject.md) + - [MultiChannelChannelListObjectBase](docs/MultiChannelChannelListObjectBase.md) + - [MultiChannelChannelListOwnerObject](docs/MultiChannelChannelListOwnerObject.md) + - [MultiChannelChannelListRBMObject](docs/MultiChannelChannelListRBMObject.md) + - [MultiChannelChannelListRBMObjectAllOfContent](docs/MultiChannelChannelListRBMObjectAllOfContent.md) + - [MultiChannelChannelListRBMResponseObject](docs/MultiChannelChannelListRBMResponseObject.md) + - [MultiChannelChannelListRequestObject](docs/MultiChannelChannelListRequestObject.md) + - [MultiChannelChannelListResponseObject](docs/MultiChannelChannelListResponseObject.md) + - [MultiChannelChannelListSMSObject](docs/MultiChannelChannelListSMSObject.md) + - [MultiChannelChannelListSMSResponseObject](docs/MultiChannelChannelListSMSResponseObject.md) - [MultiChannelError](docs/MultiChannelError.md) - [MultiChannelMessageChannelEnum](docs/MultiChannelMessageChannelEnum.md) - [MultiChannelMessageContent](docs/MultiChannelMessageContent.md) - [MultiChannelMessageRequest](docs/MultiChannelMessageRequest.md) - [MultiChannelMessageResponseData](docs/MultiChannelMessageResponseData.md) - - [MultiChannelMessageResponseDataChannelListInner](docs/MultiChannelMessageResponseDataChannelListInner.md) - [OptInWorkflow](docs/OptInWorkflow.md) - [PageInfo](docs/PageInfo.md) - [PriorityEnum](docs/PriorityEnum.md) diff --git a/bandwidth.yml b/bandwidth.yml index 0c61348..6ee15ae 100644 --- a/bandwidth.yml +++ b/bandwidth.yml @@ -2490,7 +2490,7 @@ components: $ref: '#/components/schemas/multiChannelAction' maxItems: 11 multiChannelAction: - oneOf: + anyOf: - $ref: '#/components/schemas/rbmActionBase' - $ref: '#/components/schemas/rbmActionDial' - $ref: '#/components/schemas/rbmActionViewLocation' @@ -2505,7 +2505,7 @@ components: CREATE_CALENDAR_EVENT: '#/components/schemas/multiChannelActionCalendarEvent' OPEN_URL: '#/components/schemas/rbmActionOpenUrl' REQUEST_LOCATION: '#/components/schemas/rbmActionBase' - multiChannelChannelListObject: + multiChannelChannelListObjectBase: type: object properties: from: @@ -2514,19 +2514,85 @@ components: $ref: '#/components/schemas/applicationId' channel: $ref: '#/components/schemas/multiChannelMessageChannelEnum' - content: - description: The content of the message. - oneOf: - - $ref: '#/components/schemas/rbmMessageContentText' - - $ref: '#/components/schemas/rbmMessageMedia' - - $ref: '#/components/schemas/rbmMessageContentRichCard' - - $ref: '#/components/schemas/smsMessageContent' - - $ref: '#/components/schemas/mmsMessageContent' required: - from - applicationId - channel + multiChannelChannelListRBMObject: + allOf: + - $ref: '#/components/schemas/multiChannelChannelListObjectBase' + - type: object + properties: + content: + description: The content of the message. + oneOf: + - $ref: '#/components/schemas/rbmMessageContentText' + - $ref: '#/components/schemas/rbmMessageMedia' + - $ref: '#/components/schemas/rbmMessageContentRichCard' + required: - content + multiChannelChannelListSMSObject: + allOf: + - $ref: '#/components/schemas/multiChannelChannelListObjectBase' + - type: object + properties: + content: + $ref: '#/components/schemas/smsMessageContent' + required: + - content + multiChannelChannelListMMSObject: + allOf: + - $ref: '#/components/schemas/multiChannelChannelListObjectBase' + - type: object + properties: + content: + $ref: '#/components/schemas/mmsMessageContent' + required: + - content + multiChannelChannelListRBMResponseObject: + allOf: + - $ref: '#/components/schemas/multiChannelChannelListRBMObject' + - $ref: '#/components/schemas/multiChannelChannelListOwnerObject' + multiChannelChannelListSMSResponseObject: + allOf: + - $ref: '#/components/schemas/multiChannelChannelListSMSObject' + - $ref: '#/components/schemas/multiChannelChannelListOwnerObject' + multiChannelChannelListMMSResponseObject: + allOf: + - $ref: '#/components/schemas/multiChannelChannelListMMSObject' + - $ref: '#/components/schemas/multiChannelChannelListOwnerObject' + multiChannelChannelListRequestObject: + anyOf: + - $ref: '#/components/schemas/multiChannelChannelListRBMObject' + - $ref: '#/components/schemas/multiChannelChannelListSMSObject' + - $ref: '#/components/schemas/multiChannelChannelListMMSObject' + discriminator: + propertyName: channel + mapping: + RBM: '#/components/schemas/multiChannelChannelListRBMObject' + SMS: '#/components/schemas/multiChannelChannelListSMSObject' + MMS: '#/components/schemas/multiChannelChannelListMMSObject' + multiChannelChannelListOwnerObject: + type: object + properties: + owner: + type: string + description: >- + The Bandwidth senderId associated with the message. Identical to + 'from'. + required: + - owner + multiChannelChannelListResponseObject: + anyOf: + - $ref: '#/components/schemas/multiChannelChannelListRBMResponseObject' + - $ref: '#/components/schemas/multiChannelChannelListSMSResponseObject' + - $ref: '#/components/schemas/multiChannelChannelListMMSResponseObject' + discriminator: + propertyName: channel + mapping: + RBM: '#/components/schemas/multiChannelChannelListRBMResponseObject' + SMS: '#/components/schemas/multiChannelChannelListSMSResponseObject' + MMS: '#/components/schemas/multiChannelChannelListMMSResponseObject' multiChannelMessageRequest: description: Multi-Channel Message Request type: object @@ -2540,7 +2606,7 @@ components: order they are listed. Once a message sends successfully, the others will be ignored. items: - $ref: '#/components/schemas/multiChannelChannelListObject' + $ref: '#/components/schemas/multiChannelChannelListRequestObject' maxItems: 4 tag: $ref: '#/components/schemas/tag' @@ -2573,17 +2639,7 @@ components: order they are listed. Once a message sends successfully, the others will be ignored. items: - allOf: - - $ref: '#/components/schemas/multiChannelChannelListObject' - - type: object - properties: - owner: - type: string - description: >- - The Bandwidth senderId associated with the message. - Identical to 'from'. - required: - - owner + $ref: '#/components/schemas/multiChannelChannelListResponseObject' maxItems: 4 tag: $ref: '#/components/schemas/tag' diff --git a/docs/MultiChannelChannelListObject.md b/docs/MultiChannelChannelListMMSObject.md similarity index 74% rename from docs/MultiChannelChannelListObject.md rename to docs/MultiChannelChannelListMMSObject.md index f349678..65d2967 100644 --- a/docs/MultiChannelChannelListObject.md +++ b/docs/MultiChannelChannelListMMSObject.md @@ -1,4 +1,4 @@ -# MultiChannelChannelListObject +# MultiChannelChannelListMMSObject ## Properties @@ -8,14 +8,14 @@ Name | Type | Description | Notes **from** | **string** | The sender ID of the message. This could be an alphanumeric sender ID. | [default to undefined] **applicationId** | **string** | The ID of the Application your from number or senderId is associated with in the Bandwidth Phone Number Dashboard. | [default to undefined] **channel** | [**MultiChannelMessageChannelEnum**](MultiChannelMessageChannelEnum.md) | | [default to undefined] -**content** | [**MultiChannelChannelListObjectContent**](MultiChannelChannelListObjectContent.md) | | [default to undefined] +**content** | [**MmsMessageContent**](MmsMessageContent.md) | | [default to undefined] ## Example ```typescript -import { MultiChannelChannelListObject } from 'bandwidth-sdk'; +import { MultiChannelChannelListMMSObject } from 'bandwidth-sdk'; -const instance: MultiChannelChannelListObject = { +const instance: MultiChannelChannelListMMSObject = { from, applicationId, channel, diff --git a/docs/MultiChannelMessageResponseDataChannelListInner.md b/docs/MultiChannelChannelListMMSResponseObject.md similarity index 73% rename from docs/MultiChannelMessageResponseDataChannelListInner.md rename to docs/MultiChannelChannelListMMSResponseObject.md index 341ccf1..0d43304 100644 --- a/docs/MultiChannelMessageResponseDataChannelListInner.md +++ b/docs/MultiChannelChannelListMMSResponseObject.md @@ -1,4 +1,4 @@ -# MultiChannelMessageResponseDataChannelListInner +# MultiChannelChannelListMMSResponseObject ## Properties @@ -8,15 +8,15 @@ Name | Type | Description | Notes **from** | **string** | The sender ID of the message. This could be an alphanumeric sender ID. | [default to undefined] **applicationId** | **string** | The ID of the Application your from number or senderId is associated with in the Bandwidth Phone Number Dashboard. | [default to undefined] **channel** | [**MultiChannelMessageChannelEnum**](MultiChannelMessageChannelEnum.md) | | [default to undefined] -**content** | [**MultiChannelChannelListObjectContent**](MultiChannelChannelListObjectContent.md) | | [default to undefined] +**content** | [**MmsMessageContent**](MmsMessageContent.md) | | [default to undefined] **owner** | **string** | The Bandwidth senderId associated with the message. Identical to \'from\'. | [default to undefined] ## Example ```typescript -import { MultiChannelMessageResponseDataChannelListInner } from 'bandwidth-sdk'; +import { MultiChannelChannelListMMSResponseObject } from 'bandwidth-sdk'; -const instance: MultiChannelMessageResponseDataChannelListInner = { +const instance: MultiChannelChannelListMMSResponseObject = { from, applicationId, channel, diff --git a/docs/MultiChannelChannelListObjectBase.md b/docs/MultiChannelChannelListObjectBase.md new file mode 100644 index 0000000..4ea20d9 --- /dev/null +++ b/docs/MultiChannelChannelListObjectBase.md @@ -0,0 +1,24 @@ +# MultiChannelChannelListObjectBase + + +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**from** | **string** | The sender ID of the message. This could be an alphanumeric sender ID. | [default to undefined] +**applicationId** | **string** | The ID of the Application your from number or senderId is associated with in the Bandwidth Phone Number Dashboard. | [default to undefined] +**channel** | [**MultiChannelMessageChannelEnum**](MultiChannelMessageChannelEnum.md) | | [default to undefined] + +## Example + +```typescript +import { MultiChannelChannelListObjectBase } from 'bandwidth-sdk'; + +const instance: MultiChannelChannelListObjectBase = { + from, + applicationId, + channel, +}; +``` + +[[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/MultiChannelChannelListOwnerObject.md b/docs/MultiChannelChannelListOwnerObject.md new file mode 100644 index 0000000..feed102 --- /dev/null +++ b/docs/MultiChannelChannelListOwnerObject.md @@ -0,0 +1,20 @@ +# MultiChannelChannelListOwnerObject + + +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**owner** | **string** | The Bandwidth senderId associated with the message. Identical to \'from\'. | [default to undefined] + +## Example + +```typescript +import { MultiChannelChannelListOwnerObject } from 'bandwidth-sdk'; + +const instance: MultiChannelChannelListOwnerObject = { + owner, +}; +``` + +[[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/MultiChannelChannelListRBMObject.md b/docs/MultiChannelChannelListRBMObject.md new file mode 100644 index 0000000..a7e7494 --- /dev/null +++ b/docs/MultiChannelChannelListRBMObject.md @@ -0,0 +1,26 @@ +# MultiChannelChannelListRBMObject + + +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**from** | **string** | The sender ID of the message. This could be an alphanumeric sender ID. | [default to undefined] +**applicationId** | **string** | The ID of the Application your from number or senderId is associated with in the Bandwidth Phone Number Dashboard. | [default to undefined] +**channel** | [**MultiChannelMessageChannelEnum**](MultiChannelMessageChannelEnum.md) | | [default to undefined] +**content** | [**MultiChannelChannelListRBMObjectAllOfContent**](MultiChannelChannelListRBMObjectAllOfContent.md) | | [default to undefined] + +## Example + +```typescript +import { MultiChannelChannelListRBMObject } from 'bandwidth-sdk'; + +const instance: MultiChannelChannelListRBMObject = { + from, + applicationId, + channel, + content, +}; +``` + +[[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/MultiChannelChannelListObjectContent.md b/docs/MultiChannelChannelListRBMObjectAllOfContent.md similarity index 73% rename from docs/MultiChannelChannelListObjectContent.md rename to docs/MultiChannelChannelListRBMObjectAllOfContent.md index c0e471f..4d566be 100644 --- a/docs/MultiChannelChannelListObjectContent.md +++ b/docs/MultiChannelChannelListRBMObjectAllOfContent.md @@ -1,4 +1,4 @@ -# MultiChannelChannelListObjectContent +# MultiChannelChannelListRBMObjectAllOfContent The content of the message. @@ -6,9 +6,9 @@ The content of the message. Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- -**text** | **string** | The contents of the text message. Must be 2048 characters or less. | [default to undefined] +**text** | **string** | The text associated with the message. Must be 3270 characters or less | [default to undefined] **suggestions** | [**Array<MultiChannelAction>**](MultiChannelAction.md) | An array of suggested actions for the recipient. | [optional] [default to undefined] -**media** | [**Array<MmsMessageContentFile>**](MmsMessageContentFile.md) | | [default to undefined] +**media** | [**RbmMessageContentFile**](RbmMessageContentFile.md) | | [default to undefined] **orientation** | [**StandaloneCardOrientationEnum**](StandaloneCardOrientationEnum.md) | | [default to undefined] **thumbnailImageAlignment** | [**ThumbnailAlignmentEnum**](ThumbnailAlignmentEnum.md) | | [default to undefined] **cardContent** | [**RbmCardContent**](RbmCardContent.md) | | [default to undefined] @@ -18,9 +18,9 @@ Name | Type | Description | Notes ## Example ```typescript -import { MultiChannelChannelListObjectContent } from 'bandwidth-sdk'; +import { MultiChannelChannelListRBMObjectAllOfContent } from 'bandwidth-sdk'; -const instance: MultiChannelChannelListObjectContent = { +const instance: MultiChannelChannelListRBMObjectAllOfContent = { text, suggestions, media, diff --git a/docs/MultiChannelChannelListRBMResponseObject.md b/docs/MultiChannelChannelListRBMResponseObject.md new file mode 100644 index 0000000..917c116 --- /dev/null +++ b/docs/MultiChannelChannelListRBMResponseObject.md @@ -0,0 +1,28 @@ +# MultiChannelChannelListRBMResponseObject + + +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**from** | **string** | The sender ID of the message. This could be an alphanumeric sender ID. | [default to undefined] +**applicationId** | **string** | The ID of the Application your from number or senderId is associated with in the Bandwidth Phone Number Dashboard. | [default to undefined] +**channel** | [**MultiChannelMessageChannelEnum**](MultiChannelMessageChannelEnum.md) | | [default to undefined] +**content** | [**MultiChannelChannelListRBMObjectAllOfContent**](MultiChannelChannelListRBMObjectAllOfContent.md) | | [default to undefined] +**owner** | **string** | The Bandwidth senderId associated with the message. Identical to \'from\'. | [default to undefined] + +## Example + +```typescript +import { MultiChannelChannelListRBMResponseObject } from 'bandwidth-sdk'; + +const instance: MultiChannelChannelListRBMResponseObject = { + from, + applicationId, + channel, + content, + owner, +}; +``` + +[[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/MultiChannelChannelListRequestObject.md b/docs/MultiChannelChannelListRequestObject.md new file mode 100644 index 0000000..d362bf8 --- /dev/null +++ b/docs/MultiChannelChannelListRequestObject.md @@ -0,0 +1,26 @@ +# MultiChannelChannelListRequestObject + + +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**from** | **string** | The sender ID of the message. This could be an alphanumeric sender ID. | [default to undefined] +**applicationId** | **string** | The ID of the Application your from number or senderId is associated with in the Bandwidth Phone Number Dashboard. | [default to undefined] +**channel** | [**MultiChannelMessageChannelEnum**](MultiChannelMessageChannelEnum.md) | | [default to undefined] +**content** | [**MmsMessageContent**](MmsMessageContent.md) | | [default to undefined] + +## Example + +```typescript +import { MultiChannelChannelListRequestObject } from 'bandwidth-sdk'; + +const instance: MultiChannelChannelListRequestObject = { + from, + applicationId, + channel, + content, +}; +``` + +[[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/MultiChannelChannelListResponseObject.md b/docs/MultiChannelChannelListResponseObject.md new file mode 100644 index 0000000..b84a9fe --- /dev/null +++ b/docs/MultiChannelChannelListResponseObject.md @@ -0,0 +1,28 @@ +# MultiChannelChannelListResponseObject + + +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**from** | **string** | The sender ID of the message. This could be an alphanumeric sender ID. | [default to undefined] +**applicationId** | **string** | The ID of the Application your from number or senderId is associated with in the Bandwidth Phone Number Dashboard. | [default to undefined] +**channel** | [**MultiChannelMessageChannelEnum**](MultiChannelMessageChannelEnum.md) | | [default to undefined] +**content** | [**MmsMessageContent**](MmsMessageContent.md) | | [default to undefined] +**owner** | **string** | The Bandwidth senderId associated with the message. Identical to \'from\'. | [default to undefined] + +## Example + +```typescript +import { MultiChannelChannelListResponseObject } from 'bandwidth-sdk'; + +const instance: MultiChannelChannelListResponseObject = { + from, + applicationId, + channel, + content, + owner, +}; +``` + +[[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/MultiChannelChannelListSMSObject.md b/docs/MultiChannelChannelListSMSObject.md new file mode 100644 index 0000000..a76c1ac --- /dev/null +++ b/docs/MultiChannelChannelListSMSObject.md @@ -0,0 +1,26 @@ +# MultiChannelChannelListSMSObject + + +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**from** | **string** | The sender ID of the message. This could be an alphanumeric sender ID. | [default to undefined] +**applicationId** | **string** | The ID of the Application your from number or senderId is associated with in the Bandwidth Phone Number Dashboard. | [default to undefined] +**channel** | [**MultiChannelMessageChannelEnum**](MultiChannelMessageChannelEnum.md) | | [default to undefined] +**content** | [**SmsMessageContent**](SmsMessageContent.md) | | [default to undefined] + +## Example + +```typescript +import { MultiChannelChannelListSMSObject } from 'bandwidth-sdk'; + +const instance: MultiChannelChannelListSMSObject = { + from, + applicationId, + channel, + content, +}; +``` + +[[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/MultiChannelChannelListSMSResponseObject.md b/docs/MultiChannelChannelListSMSResponseObject.md new file mode 100644 index 0000000..d91ebbf --- /dev/null +++ b/docs/MultiChannelChannelListSMSResponseObject.md @@ -0,0 +1,28 @@ +# MultiChannelChannelListSMSResponseObject + + +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**from** | **string** | The sender ID of the message. This could be an alphanumeric sender ID. | [default to undefined] +**applicationId** | **string** | The ID of the Application your from number or senderId is associated with in the Bandwidth Phone Number Dashboard. | [default to undefined] +**channel** | [**MultiChannelMessageChannelEnum**](MultiChannelMessageChannelEnum.md) | | [default to undefined] +**content** | [**SmsMessageContent**](SmsMessageContent.md) | | [default to undefined] +**owner** | **string** | The Bandwidth senderId associated with the message. Identical to \'from\'. | [default to undefined] + +## Example + +```typescript +import { MultiChannelChannelListSMSResponseObject } from 'bandwidth-sdk'; + +const instance: MultiChannelChannelListSMSResponseObject = { + from, + applicationId, + channel, + content, + owner, +}; +``` + +[[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/MultiChannelMessageRequest.md b/docs/MultiChannelMessageRequest.md index caa647e..199ce7b 100644 --- a/docs/MultiChannelMessageRequest.md +++ b/docs/MultiChannelMessageRequest.md @@ -7,7 +7,7 @@ Multi-Channel Message Request Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- **to** | **string** | The phone number the message should be sent to in E164 format. | [default to undefined] -**channelList** | [**Array<MultiChannelChannelListObject>**](MultiChannelChannelListObject.md) | A list of message bodies. The messages will be attempted in the order they are listed. Once a message sends successfully, the others will be ignored. | [default to undefined] +**channelList** | [**Array<MultiChannelChannelListRequestObject>**](MultiChannelChannelListRequestObject.md) | A list of message bodies. The messages will be attempted in the order they are listed. Once a message sends successfully, the others will be ignored. | [default to undefined] **tag** | **string** | A custom string that will be included in callback events of the message. Max 1024 characters. | [optional] [default to undefined] **priority** | [**PriorityEnum**](PriorityEnum.md) | | [optional] [default to undefined] **expiration** | **string** | A string with the date/time value that the message will automatically expire by. This must be a valid RFC-3339 value, e.g., 2021-03-14T01:59:26Z or 2021-03-13T20:59:26-05:00. Must be a date-time in the future. | [optional] [default to undefined] diff --git a/docs/MultiChannelMessageResponseData.md b/docs/MultiChannelMessageResponseData.md index ea939e3..999c570 100644 --- a/docs/MultiChannelMessageResponseData.md +++ b/docs/MultiChannelMessageResponseData.md @@ -10,7 +10,7 @@ Name | Type | Description | Notes **time** | **string** | The time the message was received by the Bandwidth API. | [default to undefined] **direction** | [**MessageDirectionEnum**](MessageDirectionEnum.md) | | [default to undefined] **to** | **Set<string>** | The destination phone number(s) of the message, in E164 format. | [default to undefined] -**channelList** | [**Array<MultiChannelMessageResponseDataChannelListInner>**](MultiChannelMessageResponseDataChannelListInner.md) | A list of message bodies. The messages will be attempted in the order they are listed. Once a message sends successfully, the others will be ignored. | [default to undefined] +**channelList** | [**Array<MultiChannelChannelListResponseObject>**](MultiChannelChannelListResponseObject.md) | A list of message bodies. The messages will be attempted in the order they are listed. Once a message sends successfully, the others will be ignored. | [default to undefined] **tag** | **string** | A custom string that will be included in callback events of the message. Max 1024 characters. | [optional] [default to undefined] **priority** | [**PriorityEnum**](PriorityEnum.md) | | [optional] [default to undefined] **expiration** | **string** | A string with the date/time value that the message will automatically expire by. This must be a valid RFC-3339 value, e.g., 2021-03-14T01:59:26Z or 2021-03-13T20:59:26-05:00. Must be a date-time in the future. | [optional] [default to undefined] diff --git a/models/index.ts b/models/index.ts index 3dfcf17..8c78bf5 100644 --- a/models/index.ts +++ b/models/index.ts @@ -90,14 +90,22 @@ export * from './mms-message-content-file'; export * from './model-error'; export * from './multi-channel-action'; export * from './multi-channel-action-calendar-event'; -export * from './multi-channel-channel-list-object'; -export * from './multi-channel-channel-list-object-content'; +export * from './multi-channel-channel-list-mmsobject'; +export * from './multi-channel-channel-list-mmsresponse-object'; +export * from './multi-channel-channel-list-object-base'; +export * from './multi-channel-channel-list-owner-object'; +export * from './multi-channel-channel-list-rbmobject'; +export * from './multi-channel-channel-list-rbmobject-all-of-content'; +export * from './multi-channel-channel-list-rbmresponse-object'; +export * from './multi-channel-channel-list-request-object'; +export * from './multi-channel-channel-list-response-object'; +export * from './multi-channel-channel-list-smsobject'; +export * from './multi-channel-channel-list-smsresponse-object'; export * from './multi-channel-error'; export * from './multi-channel-message-channel-enum'; export * from './multi-channel-message-content'; export * from './multi-channel-message-request'; export * from './multi-channel-message-response-data'; -export * from './multi-channel-message-response-data-channel-list-inner'; export * from './opt-in-workflow'; export * from './page-info'; export * from './priority-enum'; diff --git a/models/multi-channel-action.ts b/models/multi-channel-action.ts index 5e6688f..8d26e51 100644 --- a/models/multi-channel-action.ts +++ b/models/multi-channel-action.ts @@ -32,9 +32,53 @@ import type { RbmActionTypeEnum } from './rbm-action-type-enum'; // @ts-ignore import type { RbmActionViewLocation } from './rbm-action-view-location'; -/** - * @type MultiChannelAction - */ -export type MultiChannelAction = { type: 'CREATE_CALENDAR_EVENT' } & MultiChannelActionCalendarEvent | { type: 'DIAL_PHONE' } & RbmActionDial | { type: 'OPEN_URL' } & RbmActionOpenUrl | { type: 'REPLY' } & RbmActionBase | { type: 'REQUEST_LOCATION' } & RbmActionBase | { type: 'SHOW_LOCATION' } & RbmActionViewLocation; +export interface MultiChannelAction { + 'type': RbmActionTypeEnum; + /** + * Displayed text for user to click + */ + 'text': string; + /** + * Base64 payload the customer receives when the reply is clicked. + */ + 'postbackData': string; + /** + * The phone number to dial. Must be E164 format. + */ + 'phoneNumber': string; + /** + * The latitude of the location. + */ + 'latitude': number; + /** + * The longitude of the location. + */ + 'longitude': number; + /** + * The label of the location. + */ + 'label'?: string; + /** + * The title of the event. + */ + 'title': string; + /** + * The start time of the event. + */ + 'startTime': string; + /** + * The end time of the event. + */ + 'endTime': string; + /** + * The description of the event. + */ + 'description'?: string; + /** + * The URL to open in browser. + */ + 'url': string; +} + diff --git a/models/multi-channel-message-response-data-channel-list-inner.ts b/models/multi-channel-channel-list-mmsobject.ts similarity index 64% rename from models/multi-channel-message-response-data-channel-list-inner.ts rename to models/multi-channel-channel-list-mmsobject.ts index c29dd6a..3b0ffeb 100644 --- a/models/multi-channel-message-response-data-channel-list-inner.ts +++ b/models/multi-channel-channel-list-mmsobject.ts @@ -15,17 +15,17 @@ // May contain unused imports in some cases // @ts-ignore -import type { MultiChannelChannelListObject } from './multi-channel-channel-list-object'; +import type { MmsMessageContent } from './mms-message-content'; // May contain unused imports in some cases // @ts-ignore -import type { MultiChannelChannelListObjectContent } from './multi-channel-channel-list-object-content'; +import type { MultiChannelChannelListObjectBase } from './multi-channel-channel-list-object-base'; // May contain unused imports in some cases // @ts-ignore import type { MultiChannelMessageChannelEnum } from './multi-channel-message-channel-enum'; /** - * @type MultiChannelMessageResponseDataChannelListInner + * @type MultiChannelChannelListMMSObject */ -export type MultiChannelMessageResponseDataChannelListInner = MultiChannelChannelListObject; +export type MultiChannelChannelListMMSObject = MultiChannelChannelListObjectBase; diff --git a/models/multi-channel-channel-list-mmsresponse-object.ts b/models/multi-channel-channel-list-mmsresponse-object.ts new file mode 100644 index 0000000..95b451e --- /dev/null +++ b/models/multi-channel-channel-list-mmsresponse-object.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. + */ + + +// May contain unused imports in some cases +// @ts-ignore +import type { MmsMessageContent } from './mms-message-content'; +// May contain unused imports in some cases +// @ts-ignore +import type { MultiChannelChannelListMMSObject } from './multi-channel-channel-list-mmsobject'; +// May contain unused imports in some cases +// @ts-ignore +import type { MultiChannelChannelListOwnerObject } from './multi-channel-channel-list-owner-object'; +// May contain unused imports in some cases +// @ts-ignore +import type { MultiChannelMessageChannelEnum } from './multi-channel-message-channel-enum'; + +/** + * @type MultiChannelChannelListMMSResponseObject + */ +export type MultiChannelChannelListMMSResponseObject = MultiChannelChannelListMMSObject & MultiChannelChannelListOwnerObject; + + diff --git a/models/multi-channel-channel-list-object.ts b/models/multi-channel-channel-list-object-base.ts similarity index 75% rename from models/multi-channel-channel-list-object.ts rename to models/multi-channel-channel-list-object-base.ts index 4e7c23d..d92097d 100644 --- a/models/multi-channel-channel-list-object.ts +++ b/models/multi-channel-channel-list-object-base.ts @@ -13,14 +13,11 @@ */ -// May contain unused imports in some cases -// @ts-ignore -import type { MultiChannelChannelListObjectContent } from './multi-channel-channel-list-object-content'; // May contain unused imports in some cases // @ts-ignore import type { MultiChannelMessageChannelEnum } from './multi-channel-message-channel-enum'; -export interface MultiChannelChannelListObject { +export interface MultiChannelChannelListObjectBase { /** * The sender ID of the message. This could be an alphanumeric sender ID. */ @@ -30,7 +27,6 @@ export interface MultiChannelChannelListObject { */ 'applicationId': string; 'channel': MultiChannelMessageChannelEnum; - 'content': MultiChannelChannelListObjectContent; } diff --git a/models/multi-channel-channel-list-owner-object.ts b/models/multi-channel-channel-list-owner-object.ts new file mode 100644 index 0000000..2baf2bc --- /dev/null +++ b/models/multi-channel-channel-list-owner-object.ts @@ -0,0 +1,23 @@ +/* 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. + */ + + + +export interface MultiChannelChannelListOwnerObject { + /** + * The Bandwidth senderId associated with the message. Identical to \'from\'. + */ + 'owner': string; +} + diff --git a/models/multi-channel-channel-list-object-content.ts b/models/multi-channel-channel-list-rbmobject-all-of-content.ts similarity index 74% rename from models/multi-channel-channel-list-object-content.ts rename to models/multi-channel-channel-list-rbmobject-all-of-content.ts index 28607b2..4608944 100644 --- a/models/multi-channel-channel-list-object-content.ts +++ b/models/multi-channel-channel-list-rbmobject-all-of-content.ts @@ -18,18 +18,15 @@ import type { CardWidthEnum } from './card-width-enum'; // May contain unused imports in some cases // @ts-ignore -import type { MmsMessageContent } from './mms-message-content'; -// May contain unused imports in some cases -// @ts-ignore -import type { MmsMessageContentFile } from './mms-message-content-file'; -// May contain unused imports in some cases -// @ts-ignore import type { MultiChannelAction } from './multi-channel-action'; // May contain unused imports in some cases // @ts-ignore import type { RbmCardContent } from './rbm-card-content'; // May contain unused imports in some cases // @ts-ignore +import type { RbmMessageContentFile } from './rbm-message-content-file'; +// May contain unused imports in some cases +// @ts-ignore import type { RbmMessageContentRichCard } from './rbm-message-content-rich-card'; // May contain unused imports in some cases // @ts-ignore @@ -39,18 +36,15 @@ import type { RbmMessageContentText } from './rbm-message-content-text'; import type { RbmMessageMedia } from './rbm-message-media'; // May contain unused imports in some cases // @ts-ignore -import type { SmsMessageContent } from './sms-message-content'; -// May contain unused imports in some cases -// @ts-ignore import type { StandaloneCardOrientationEnum } from './standalone-card-orientation-enum'; // May contain unused imports in some cases // @ts-ignore import type { ThumbnailAlignmentEnum } from './thumbnail-alignment-enum'; /** - * @type MultiChannelChannelListObjectContent + * @type MultiChannelChannelListRBMObjectAllOfContent * The content of the message. */ -export type MultiChannelChannelListObjectContent = MmsMessageContent | RbmMessageContentRichCard | RbmMessageContentText | RbmMessageMedia | SmsMessageContent; +export type MultiChannelChannelListRBMObjectAllOfContent = RbmMessageContentRichCard | RbmMessageContentText | RbmMessageMedia; diff --git a/models/multi-channel-channel-list-rbmobject.ts b/models/multi-channel-channel-list-rbmobject.ts new file mode 100644 index 0000000..fb00b51 --- /dev/null +++ b/models/multi-channel-channel-list-rbmobject.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. + */ + + +// May contain unused imports in some cases +// @ts-ignore +import type { MultiChannelChannelListObjectBase } from './multi-channel-channel-list-object-base'; +// May contain unused imports in some cases +// @ts-ignore +import type { MultiChannelChannelListRBMObjectAllOfContent } from './multi-channel-channel-list-rbmobject-all-of-content'; +// May contain unused imports in some cases +// @ts-ignore +import type { MultiChannelMessageChannelEnum } from './multi-channel-message-channel-enum'; + +/** + * @type MultiChannelChannelListRBMObject + */ +export type MultiChannelChannelListRBMObject = MultiChannelChannelListObjectBase; + + diff --git a/models/multi-channel-channel-list-rbmresponse-object.ts b/models/multi-channel-channel-list-rbmresponse-object.ts new file mode 100644 index 0000000..f3c4e77 --- /dev/null +++ b/models/multi-channel-channel-list-rbmresponse-object.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. + */ + + +// May contain unused imports in some cases +// @ts-ignore +import type { MultiChannelChannelListOwnerObject } from './multi-channel-channel-list-owner-object'; +// May contain unused imports in some cases +// @ts-ignore +import type { MultiChannelChannelListRBMObject } from './multi-channel-channel-list-rbmobject'; +// May contain unused imports in some cases +// @ts-ignore +import type { MultiChannelChannelListRBMObjectAllOfContent } from './multi-channel-channel-list-rbmobject-all-of-content'; +// May contain unused imports in some cases +// @ts-ignore +import type { MultiChannelMessageChannelEnum } from './multi-channel-message-channel-enum'; + +/** + * @type MultiChannelChannelListRBMResponseObject + */ +export type MultiChannelChannelListRBMResponseObject = MultiChannelChannelListOwnerObject & MultiChannelChannelListRBMObject; + + diff --git a/models/multi-channel-channel-list-request-object.ts b/models/multi-channel-channel-list-request-object.ts new file mode 100644 index 0000000..c55a0b3 --- /dev/null +++ b/models/multi-channel-channel-list-request-object.ts @@ -0,0 +1,46 @@ +/* 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. + */ + + +// May contain unused imports in some cases +// @ts-ignore +import type { MmsMessageContent } from './mms-message-content'; +// May contain unused imports in some cases +// @ts-ignore +import type { MultiChannelChannelListMMSObject } from './multi-channel-channel-list-mmsobject'; +// May contain unused imports in some cases +// @ts-ignore +import type { MultiChannelChannelListRBMObject } from './multi-channel-channel-list-rbmobject'; +// May contain unused imports in some cases +// @ts-ignore +import type { MultiChannelChannelListSMSObject } from './multi-channel-channel-list-smsobject'; +// May contain unused imports in some cases +// @ts-ignore +import type { MultiChannelMessageChannelEnum } from './multi-channel-message-channel-enum'; + +export interface MultiChannelChannelListRequestObject { + /** + * The sender ID of the message. This could be an alphanumeric sender ID. + */ + 'from': string; + /** + * The ID of the Application your from number or senderId is associated with in the Bandwidth Phone Number Dashboard. + */ + 'applicationId': string; + 'channel': MultiChannelMessageChannelEnum; + 'content': MmsMessageContent; +} + + + diff --git a/models/multi-channel-channel-list-response-object.ts b/models/multi-channel-channel-list-response-object.ts new file mode 100644 index 0000000..b07901e --- /dev/null +++ b/models/multi-channel-channel-list-response-object.ts @@ -0,0 +1,50 @@ +/* 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. + */ + + +// May contain unused imports in some cases +// @ts-ignore +import type { MmsMessageContent } from './mms-message-content'; +// May contain unused imports in some cases +// @ts-ignore +import type { MultiChannelChannelListMMSResponseObject } from './multi-channel-channel-list-mmsresponse-object'; +// May contain unused imports in some cases +// @ts-ignore +import type { MultiChannelChannelListRBMResponseObject } from './multi-channel-channel-list-rbmresponse-object'; +// May contain unused imports in some cases +// @ts-ignore +import type { MultiChannelChannelListSMSResponseObject } from './multi-channel-channel-list-smsresponse-object'; +// May contain unused imports in some cases +// @ts-ignore +import type { MultiChannelMessageChannelEnum } from './multi-channel-message-channel-enum'; + +export interface MultiChannelChannelListResponseObject { + /** + * The sender ID of the message. This could be an alphanumeric sender ID. + */ + 'from': string; + /** + * The ID of the Application your from number or senderId is associated with in the Bandwidth Phone Number Dashboard. + */ + 'applicationId': string; + 'channel': MultiChannelMessageChannelEnum; + 'content': MmsMessageContent; + /** + * The Bandwidth senderId associated with the message. Identical to \'from\'. + */ + 'owner': string; +} + + + diff --git a/models/multi-channel-channel-list-smsobject.ts b/models/multi-channel-channel-list-smsobject.ts new file mode 100644 index 0000000..b85d6a0 --- /dev/null +++ b/models/multi-channel-channel-list-smsobject.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. + */ + + +// May contain unused imports in some cases +// @ts-ignore +import type { MultiChannelChannelListObjectBase } from './multi-channel-channel-list-object-base'; +// May contain unused imports in some cases +// @ts-ignore +import type { MultiChannelMessageChannelEnum } from './multi-channel-message-channel-enum'; +// May contain unused imports in some cases +// @ts-ignore +import type { SmsMessageContent } from './sms-message-content'; + +/** + * @type MultiChannelChannelListSMSObject + */ +export type MultiChannelChannelListSMSObject = MultiChannelChannelListObjectBase; + + diff --git a/models/multi-channel-channel-list-smsresponse-object.ts b/models/multi-channel-channel-list-smsresponse-object.ts new file mode 100644 index 0000000..131d01b --- /dev/null +++ b/models/multi-channel-channel-list-smsresponse-object.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. + */ + + +// May contain unused imports in some cases +// @ts-ignore +import type { MultiChannelChannelListOwnerObject } from './multi-channel-channel-list-owner-object'; +// May contain unused imports in some cases +// @ts-ignore +import type { MultiChannelChannelListSMSObject } from './multi-channel-channel-list-smsobject'; +// May contain unused imports in some cases +// @ts-ignore +import type { MultiChannelMessageChannelEnum } from './multi-channel-message-channel-enum'; +// May contain unused imports in some cases +// @ts-ignore +import type { SmsMessageContent } from './sms-message-content'; + +/** + * @type MultiChannelChannelListSMSResponseObject + */ +export type MultiChannelChannelListSMSResponseObject = MultiChannelChannelListOwnerObject & MultiChannelChannelListSMSObject; + + diff --git a/models/multi-channel-message-request.ts b/models/multi-channel-message-request.ts index 8734632..c422704 100644 --- a/models/multi-channel-message-request.ts +++ b/models/multi-channel-message-request.ts @@ -15,7 +15,7 @@ // May contain unused imports in some cases // @ts-ignore -import type { MultiChannelChannelListObject } from './multi-channel-channel-list-object'; +import type { MultiChannelChannelListRequestObject } from './multi-channel-channel-list-request-object'; // May contain unused imports in some cases // @ts-ignore import type { PriorityEnum } from './priority-enum'; @@ -31,7 +31,7 @@ export interface MultiChannelMessageRequest { /** * A list of message bodies. The messages will be attempted in the order they are listed. Once a message sends successfully, the others will be ignored. */ - 'channelList': Array; + 'channelList': Array; /** * A custom string that will be included in callback events of the message. Max 1024 characters. */ diff --git a/models/multi-channel-message-response-data.ts b/models/multi-channel-message-response-data.ts index 1b0db97..43e2d28 100644 --- a/models/multi-channel-message-response-data.ts +++ b/models/multi-channel-message-response-data.ts @@ -18,7 +18,7 @@ import type { MessageDirectionEnum } from './message-direction-enum'; // May contain unused imports in some cases // @ts-ignore -import type { MultiChannelMessageResponseDataChannelListInner } from './multi-channel-message-response-data-channel-list-inner'; +import type { MultiChannelChannelListResponseObject } from './multi-channel-channel-list-response-object'; // May contain unused imports in some cases // @ts-ignore import type { PriorityEnum } from './priority-enum'; @@ -43,7 +43,7 @@ export interface MultiChannelMessageResponseData { /** * A list of message bodies. The messages will be attempted in the order they are listed. Once a message sends successfully, the others will be ignored. */ - 'channelList': Array; + 'channelList': Array; /** * A custom string that will be included in callback events of the message. Max 1024 characters. */ diff --git a/tests/smoke/multi-channel-api.test.ts b/tests/smoke/multi-channel-api.test.ts index 26f586a..04a1c44 100644 --- a/tests/smoke/multi-channel-api.test.ts +++ b/tests/smoke/multi-channel-api.test.ts @@ -5,7 +5,13 @@ import { MultiChannelChannelListObject, MultiChannelMessageChannelEnum, PriorityEnum, - RbmMessageContentText + RbmMessageContentText, + SmsMessageContent, + MmsMessageContent, + RbmMessageContentText, + MultiChannelMessageRequest, + MessageDirectionEnum, + RbmActionTypeEnum } from '../../models'; describe('MultiChannelApi', () => { @@ -18,27 +24,128 @@ describe('MultiChannelApi', () => { const expirationTime = Date.now() + 1000 * 60 * 60 * 24 + 60; const expiration = new Date(expirationTime).toISOString(); - describe('createMultiChannelMessage', () => { - test('should create a multi-channel message', async () => { - const channelListObject: MultiChannelChannelListObject = { + describe('createMultiChannelSMSMessage', () => { + test('should create a multi-channel SMS message', async () => { + const content: SmsMessageContent = { text: "Hello World!" }; + + const channelListObject: MultiChannelChannelListSMSObject = { from: BW_NUMBER, applicationId: BW_MESSAGING_APPLICATION_ID, - channel: MultiChannelMessageChannelEnum.Rbm, - content: { - text: "Hello World!" - } + channel: MultiChannelMessageChannelEnum.Sms, + content, + }; + + const multiChannelMessageRequest: MultiChannelMessageRequest = { + to: USER_NUMBER, + tag: "tag", + priority: PriorityEnum.High, + expiration, + channelList: [channelListObject], + }; + + const { status, data } = await multiChannelApi.createMultiChannelMessage( + BW_ACCOUNT_ID, + multiChannelMessageRequest + ); + + expect(status).toEqual(202); + expect(data.links).toBeArray(); + expect(data.data?.id).toBeString(); + expect(data.data?.time).toBeDateString(); + expect(data.data?.direction).toBeOneOf(Object.values(MessageDirectionEnum)); + expect(data.data?.to).toBeArray(); + expect(data.data?.tag).toBeString(); + expect(data.data?.priority).toBeOneOf(Object.values(PriorityEnum)); + expect(data.data?.expiration).toBeDateString(); + expect(data.data?.channelList).toBeArray(); + expect(data.data?.channelList![0].channel).toEqual(MultiChannelMessageChannelEnum.Sms); + }); + }); + + describe('createMultiChannelMMSMessage', () => { + test('should create a multi-channel MMS message', async () => { + const content: MmsMessageContent = { + text: "Hello World!", + media: [{ fileUrl: "https://example.com/image.jpg" }] + }; + + const channelListObject: MultiChannelChannelListMMSObject = { + from: BW_NUMBER, + applicationId: BW_MESSAGING_APPLICATION_ID, + channel: MultiChannelMessageChannelEnum.Mms, + content, }; const multiChannelMessageRequest: MultiChannelMessageRequest = { to: USER_NUMBER, tag: "tag", - priority: PriorityEnum.HIGH, + priority: PriorityEnum.High, + expiration, channelList: [channelListObject], + }; + + const { status, data } = await multiChannelApi.createMultiChannelMessage( + BW_ACCOUNT_ID, + multiChannelMessageRequest + ); + + expect(status).toEqual(202); + expect(data.links).toBeArray(); + expect(data.data?.id).toBeString(); + expect(data.data?.time).toBeDateString(); + expect(data.data?.direction).toBeOneOf(Object.values(MessageDirectionEnum)); + expect(data.data?.to).toBeArray(); + expect(data.data?.tag).toBeString(); + expect(data.data?.priority).toBeOneOf(Object.values(PriorityEnum)); + expect(data.data?.expiration).toBeDateString(); + expect(data.data?.channelList).toBeArray(); + expect(data.data?.channelList![0].channel).toEqual(MultiChannelMessageChannelEnum.Mms); + }); + }); + + describe('createMultiChannelRBMMessage', () => { + test('should create a multi-channel RBM message', async () => { + const content: RbmMessageContentText = { + text: "Hello World!", + suggestions: [{ + type: RbmActionTypeEnum.DialPhone, + text: "Call Us", + postbackData: "tel:+1234567890", + phoneNumber: BW_NUMBER + }] + }; + + const channelListObject: MultiChannelChannelListRBMObject = { + from: BW_NUMBER, + applicationId: BW_MESSAGING_APPLICATION_ID, + channel: MultiChannelMessageChannelEnum.Rbm, + content, + }; + + const multiChannelMessageRequest: MultiChannelMessageRequest = { + to: USER_NUMBER, + tag: "tag", + priority: PriorityEnum.High, expiration, + channelList: [channelListObject], }; - const { status, data } = await multiChannelApi.createMultiChannelMessage(BW_ACCOUNT_ID, multiChannelMessageRequest); + const { status, data } = await multiChannelApi.createMultiChannelMessage( + BW_ACCOUNT_ID, + multiChannelMessageRequest + ); + expect(status).toEqual(202); + expect(data.links).toBeArray(); + expect(data.data?.id).toBeString(); + expect(data.data?.time).toBeDateString(); + expect(data.data?.direction).toBeOneOf(Object.values(MessageDirectionEnum)); + expect(data.data?.to).toBeArray(); + expect(data.data?.tag).toBeString(); + expect(data.data?.priority).toBeOneOf(Object.values(PriorityEnum)); + expect(data.data?.expiration).toBeDateString(); + expect(data.data?.channelList).toBeArray(); + expect(data.data?.channelList![0].channel).toEqual(MultiChannelMessageChannelEnum.Rbm); }); }); }); diff --git a/tests/unit/api/multi-channel-api.test.ts b/tests/unit/api/multi-channel-api.test.ts index cd6310e..a21bc06 100644 --- a/tests/unit/api/multi-channel-api.test.ts +++ b/tests/unit/api/multi-channel-api.test.ts @@ -2,10 +2,13 @@ import { MultiChannelApi } from '../../../api'; import { Configuration } from '../../../configuration'; import { - MultiChannelChannelListObject, + MultiChannelChannelListRBMObject, MultiChannelMessageChannelEnum, PriorityEnum, - RbmMessageContentText + RbmMessageContentText, + SmsMessageContent, + MultiChannelMessageRequest, + MessageDirectionEnum } from '../../../models'; describe('MultiChannelApi', () => { @@ -20,26 +23,40 @@ describe('MultiChannelApi', () => { const expiration = new Date(expirationTime).toISOString(); describe('createMultiChannelMessage', () => { - test.skip('should create a multi-channel message', async () => { // skip because prism can't handle a oneOf with differing required fields - const channelListObject: MultiChannelChannelListObject = { + test('should create a multi-channel message', async () => { + const content: SmsMessageContent = { text: "Hello World!" }; + + const channelListObject: MultiChannelChannelListSMSObject = { from: BW_NUMBER, applicationId: BW_MESSAGING_APPLICATION_ID, - channel: MultiChannelMessageChannelEnum.Rbm, - content: { - text: "Hello World!" - } + channel: MultiChannelMessageChannelEnum.Sms, + content, }; const multiChannelMessageRequest: MultiChannelMessageRequest = { to: USER_NUMBER, tag: "tag", - priority: PriorityEnum.HIGH, + priority: PriorityEnum.High, expiration, + channelList: [channelListObject], }; - const { status, data } = await multiChannelApi.createMultiChannelMessage(BW_ACCOUNT_ID, multiChannelMessageRequest); + const { status, data } = await multiChannelApi.createMultiChannelMessage( + BW_ACCOUNT_ID, + multiChannelMessageRequest + ); expect(status).toEqual(202); + expect(data.links).toBeArray(); + expect(data.data?.id).toBeString(); + expect(data.data?.time).toBeDateString(); + expect(data.data?.direction).toBeOneOf(Object.values(MessageDirectionEnum)); + expect(data.data?.to).toBeArray(); + expect(data.data?.tag).toBeString(); + expect(data.data?.priority).toBeOneOf(Object.values(PriorityEnum)); + expect(data.data?.expiration).toBeDateString(); + expect(data.data?.channelList).toBeArray(); + expect(data.data?.channelList![0].channel).toBeOneOf(Object.values(MultiChannelMessageChannelEnum)); }); }); });