diff --git a/.openapi-generator/FILES b/.openapi-generator/FILES index 2b0b0aee..f58ba956 100644 --- a/.openapi-generator/FILES +++ b/.openapi-generator/FILES @@ -13,6 +13,8 @@ docs/AnsweredBy.md docs/ApplicationList.md docs/ApplicationRequest.md docs/ApplicationResult.md +docs/AudioStream.md +docs/AudioStreamWebhook.md docs/AvailableNumber.md docs/AvailableNumberList.md docs/BargeInReason.md @@ -24,6 +26,7 @@ docs/CallDirection.md docs/CallEndedReason.md docs/CallList.md docs/CallResult.md +docs/CallResultAllOfSubresourceUris.md docs/CallStatus.md docs/CallStatusWebhook.md docs/Capabilities.md @@ -173,6 +176,8 @@ src/freeclimb.Test/Model/AnsweredByTests.cs src/freeclimb.Test/Model/ApplicationListTests.cs src/freeclimb.Test/Model/ApplicationRequestTests.cs src/freeclimb.Test/Model/ApplicationResultTests.cs +src/freeclimb.Test/Model/AudioStreamTests.cs +src/freeclimb.Test/Model/AudioStreamWebhookTests.cs src/freeclimb.Test/Model/AvailableNumberListTests.cs src/freeclimb.Test/Model/AvailableNumberTests.cs src/freeclimb.Test/Model/BargeInReasonTests.cs @@ -183,6 +188,7 @@ src/freeclimb.Test/Model/CallControlWebhookTests.cs src/freeclimb.Test/Model/CallDirectionTests.cs src/freeclimb.Test/Model/CallEndedReasonTests.cs src/freeclimb.Test/Model/CallListTests.cs +src/freeclimb.Test/Model/CallResultAllOfSubresourceUrisTests.cs src/freeclimb.Test/Model/CallResultTests.cs src/freeclimb.Test/Model/CallStatusTests.cs src/freeclimb.Test/Model/CallStatusWebhookTests.cs @@ -347,6 +353,8 @@ src/freeclimb/Model/AnsweredBy.cs src/freeclimb/Model/ApplicationList.cs src/freeclimb/Model/ApplicationRequest.cs src/freeclimb/Model/ApplicationResult.cs +src/freeclimb/Model/AudioStream.cs +src/freeclimb/Model/AudioStreamWebhook.cs src/freeclimb/Model/AvailableNumber.cs src/freeclimb/Model/AvailableNumberList.cs src/freeclimb/Model/BargeInReason.cs @@ -358,6 +366,7 @@ src/freeclimb/Model/CallDirection.cs src/freeclimb/Model/CallEndedReason.cs src/freeclimb/Model/CallList.cs src/freeclimb/Model/CallResult.cs +src/freeclimb/Model/CallResultAllOfSubresourceUris.cs src/freeclimb/Model/CallStatus.cs src/freeclimb/Model/CallStatusWebhook.cs src/freeclimb/Model/Capabilities.cs diff --git a/CHANGELOG.md b/CHANGELOG.md index 6b64e9bb..04b7999b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,6 +9,15 @@ This project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.htm None + + +## [5.4.0] - 2026-04-06 + +### Added + +- New parameters for fetching recordings (start time and end time) +- Audio Streaming feature + ## [5.3.1] - 2025-10-30 diff --git a/README.md b/README.md index 8e7d2a0a..b6e563f8 100644 --- a/README.md +++ b/README.md @@ -5,7 +5,7 @@ FreeClimb is a cloud-based application programming interface (API) that puts the This C# SDK is automatically generated by the [OpenAPI Generator](https://openapi-generator.tech) project: - API version: 1.0.0 -- SDK version: 5.3.1 +- SDK version: 5.4.0 - Generator version: 7.9.0 - Build package: org.openapitools.codegen.languages.CSharpClientCodegen For more information, please visit [https://www.freeclimb.com/support/](https://www.freeclimb.com/support/) @@ -205,6 +205,8 @@ Class | Method | HTTP request | Description - [Model.ApplicationList](docs/ApplicationList.md) - [Model.ApplicationRequest](docs/ApplicationRequest.md) - [Model.ApplicationResult](docs/ApplicationResult.md) + - [Model.AudioStream](docs/AudioStream.md) + - [Model.AudioStreamWebhook](docs/AudioStreamWebhook.md) - [Model.AvailableNumber](docs/AvailableNumber.md) - [Model.AvailableNumberList](docs/AvailableNumberList.md) - [Model.BargeInReason](docs/BargeInReason.md) @@ -216,6 +218,7 @@ Class | Method | HTTP request | Description - [Model.CallEndedReason](docs/CallEndedReason.md) - [Model.CallList](docs/CallList.md) - [Model.CallResult](docs/CallResult.md) + - [Model.CallResultAllOfSubresourceUris](docs/CallResultAllOfSubresourceUris.md) - [Model.CallStatus](docs/CallStatus.md) - [Model.CallStatusWebhook](docs/CallStatusWebhook.md) - [Model.Capabilities](docs/Capabilities.md) diff --git a/api/openapi.yaml b/api/openapi.yaml index 42084dc5..708a384a 100644 --- a/api/openapi.yaml +++ b/api/openapi.yaml @@ -708,6 +708,16 @@ paths: deprecated: false operationId: list-calls parameters: + - description: 'If usedAudioStream is set to true then all calls that have a + audioStreamDuration > 0 will be returned ' + explode: true + in: query + name: usedAudioStream + required: false + schema: + default: false + type: boolean + style: form - description: "If active is set to true then all calls of the nature queued,\ \ ringing, inProgress are returned in the query." explode: true @@ -809,6 +819,15 @@ paths: schema: type: integer style: form + - description: Only show Calls that were originated via WebRTC. + explode: true + in: query + name: webRTC + required: false + schema: + default: false + type: boolean + style: form responses: "200": content: @@ -880,6 +899,24 @@ paths: schema: type: string style: simple + - description: "Only show Recordings created at or after this time, given as\ + \ YYYY-MM-DD hh:mm:ss." + explode: true + in: query + name: startTime + required: false + schema: + type: string + style: form + - description: "Only show Recordings created at or before this time, given as\ + \ YYYY-MM-DD hh:mm:ss." + explode: true + in: query + name: endTime + required: false + schema: + type: string + style: form responses: "200": content: @@ -1325,6 +1362,24 @@ paths: schema: type: string style: simple + - description: "Only show Recordings created at or after this time, given as\ + \ YYYY-MM-DD hh:mm:ss." + explode: true + in: query + name: startTime + required: false + schema: + type: string + style: form + - description: "Only show Recordings created at or before this time, given as\ + \ YYYY-MM-DD hh:mm:ss." + explode: true + in: query + name: endTime + required: false + schema: + type: string + style: form responses: "200": content: @@ -1459,7 +1514,7 @@ paths: $ref: '#/components/schemas/QueueRequest' description: Queue details used to create a queue responses: - "200": + "201": content: application/json: schema: @@ -1741,6 +1796,24 @@ paths: type: string style: simple x-account-id: true + - description: "Only show Recordings created at or after this time, given as\ + \ YYYY-MM-DD hh:mm:ss." + explode: true + in: query + name: startTime + required: false + schema: + type: string + style: form + - description: "Only show Recordings created at or before this time, given as\ + \ YYYY-MM-DD hh:mm:ss." + explode: true + in: query + name: endTime + required: false + schema: + type: string + style: form responses: "200": content: @@ -4109,6 +4182,7 @@ components: - dequeue - queueWait - addToQueueNotification + - audioStream - removeFromQueueNotification - callStatus - createConference @@ -4135,6 +4209,7 @@ components: - DEQUEUE - QUEUE_WAIT - ADD_TO_QUEUE_NOTIFICATION + - AUDIO_STREAM - REMOVE_FROM_QUEUE_NOTIFICATION - CALL_STATUS - CREATE_CONFERENCE @@ -4172,6 +4247,8 @@ components: varname: QUEUE_WAIT - enum: addToQueueNotification varname: ADD_TO_QUEUE_NOTIFICATION + - enum: audioStream + varname: AUDIO_STREAM - enum: removeFromQueueNotification varname: REMOVE_FROM_QUEUE_NOTIFICATION - enum: callStatus @@ -4544,6 +4621,7 @@ components: discriminator: mapping: AddToConference: '#/components/schemas/AddToConference' + AudioStream: '#/components/schemas/AudioStream' CreateConference: '#/components/schemas/CreateConference' Dequeue: '#/components/schemas/Dequeue' Enqueue: '#/components/schemas/Enqueue' @@ -4585,6 +4663,7 @@ components: mapping: addToConferenceNotification: '#/components/schemas/AddToConferenceNotificationWebhook' addToQueueNotification: '#/components/schemas/AddToQueueNotificationWebhook' + audioStream: '#/components/schemas/AudioStreamWebhook' callControl: '#/components/schemas/CallControlWebhook' callStatus: '#/components/schemas/CallStatusWebhook' conferenceRecordingStatus: '#/components/schemas/ConferenceRecordingStatusWebhook' @@ -4714,6 +4793,49 @@ components: is being invoked. This is a notification only; any PerCL returned will be ignored. x-webhook: addToQueueNotification + AudioStreamWebhook: + allOf: + - $ref: '#/components/schemas/Webhook' + - properties: + requestType: + description: Context or reason why this request is being made. Will be + audioStream - gRPC session for this Call has ended and its actionUrl + is being invoked. + type: string + callId: + description: "Unique ID for this Call, generated by FreeClimb. This is\ + \ the call leg which ended its gRPC session." + type: string + accountId: + description: Account ID associated with your account. + type: string + from: + description: Phone number of the party that initiated the Call (in E.164 + format). + type: string + to: + description: Phone number provisioned to you and to which this Call is + directed (in E.164 format). + type: string + callStatus: + $ref: '#/components/schemas/CallStatus' + direction: + $ref: '#/components/schemas/CallDirection' + conferenceId: + description: "This is only populated if request pertains to a Conference.\ + \ Otherwise, it is set to null." + nullable: true + type: string + queueId: + description: "This is only populated if the request pertains to a Queue.\ + \ Otherwise, it is set to null." + nullable: true + type: string + type: object + description: A gRPC session has ended for this Call its actionUrl is being invoked. + A PerCL response is expected — unless the URL is invoked due to the participant + hanging up. + x-webhook: audioStream CallControlWebhook: allOf: - $ref: '#/components/schemas/Webhook' @@ -5886,6 +6008,49 @@ components: required: - conferenceId x-percl-command: AddToConference + AudioStream: + allOf: + - $ref: '#/components/schemas/PerclCommand' + - properties: + location: + description: The gRPC server location that will receive the grpc stream + as a uri and must be port 80 or 443. + format: uri + type: string + x-is-uri: true + x-is-url: true + x-is-required: true + actionUrl: + description: A request is made to this URL when the gRPC session is concluded. + The PerCL script returned in response to the actionUrl will be executed + on the call. + format: uri + type: string + x-is-uri: true + x-is-url: true + contentType: + description: The type and sample rate of the audio being received over + the channel must match the environmental sample rate. + type: string + metaData: + description: An arbitrary array of strings passed through FC to the GRPC + server can be used to pass state or other information about the call. + items: + type: string + type: array + x-is-list: true + privacyMode: + description: Enables audio redaction with full call recording while gRPC + session is running and blocks logging of any DTMFs received by FreeClimb. + type: boolean + required: + - location + type: object + description: "The `AudioStream` command transfers control of the call to a gRPC\ + \ session. Upon completion of the gRPC session, if the actionUrl is specified,\ + \ control can be returned to percl usage or the call will simply be hung up\ + \ if the actionUrl is not specified." + x-percl-command: AudioStream CreateConference: allOf: - $ref: '#/components/schemas/PerclCommand' @@ -6763,8 +6928,6 @@ components: x-is-object: true TFN: description: TollFree Campaign details for this number - example: - campaignId: campaignId properties: campaignId: description: alphanumeric identifier for the TollFree campaign associated @@ -7043,6 +7206,7 @@ components: shortCode: true phoneNumber: phoneNumber campaignId: campaignId + alias: alias region: region properties: capabilities: @@ -7056,6 +7220,10 @@ components: \ number: +18003608245)." nullable: true type: string + alias: + description: A nicely-formatted version of the phone number. + nullable: true + type: string region: description: The state or province of this phone number. nullable: true @@ -7091,6 +7259,7 @@ components: shortCode: true phoneNumber: phoneNumber campaignId: campaignId + alias: alias region: region - country: country capabilities: @@ -7101,6 +7270,7 @@ components: shortCode: true phoneNumber: phoneNumber campaignId: campaignId + alias: alias region: region start: 6 pageSize: 2 @@ -7156,7 +7326,9 @@ components: nullable: true type: boolean tfn: - $ref: '#/components/schemas/TFN' + allOf: + - $ref: '#/components/schemas/TFN' + nullable: true type: object example: country: country @@ -7178,8 +7350,7 @@ components: offnet: true applicationId: applicationId region: region - tfn: - campaignId: campaignId + tfn: "" IncomingNumberRequest: example: campaignId: campaignId @@ -7233,8 +7404,7 @@ components: offnet: true applicationId: applicationId region: region - tfn: - campaignId: campaignId + tfn: "" - country: country capabilities: voice: true @@ -7254,8 +7424,7 @@ components: offnet: true applicationId: applicationId region: region - tfn: - campaignId: campaignId + tfn: "" start: 6 pageSize: 2 end: 1 @@ -7283,10 +7452,40 @@ components: - phoneNumber type: object x-is-object: true + CallResultAllOfSubresourceUris: + description: The list of subresources for this Call. These include things like + logs and recordings associated with the Call. + example: + recordings: recordings + logs: logs + nullable: true + properties: + logs: + description: The URI for the logs associated with this Call. + type: string + recordings: + description: The URI for the recordings associated with this Call. + type: string + type: object + x-is-object: true CallResult: allOf: - $ref: '#/components/schemas/MutableResourceModel' - properties: + dateCreatedISO: + description: "The date that this resource was created in ISO 8601 format\ + \ (e.g., 2022-01-01T00:00:00.000Z)." + format: date-time + nullable: true + type: string + x-is-date-time: true + dateUpdatedISO: + description: "The date that this resource was last updated in ISO 8601\ + \ format (e.g., 2022-01-01T00:00:00.000Z)." + format: date-time + nullable: true + type: string + x-is-date-time: true callId: description: String that uniquely identifies this Call resource. nullable: true @@ -7320,17 +7519,38 @@ components: \ 15 Jun 2009 20:45:30 GMT). Empty if the Call has not yet been dialed." nullable: true type: string + startTimeISO: + description: "Start time of the Call in ISO 8601 format (e.g., 2022-01-01T00:00:00.000Z).\ + \ Empty if the Call has not yet been dialed." + format: date-time + nullable: true + type: string + x-is-date-time: true connectTime: description: "Time the Call was answered (GMT) in RFC 1123 format (e.g.,\ \ Mon, 15 Jun 2009 20:45:30 GMT). Empty if the Call has not yet been\ \ dialed." nullable: true type: string + connectTimeISO: + description: "Time the Call was answered in ISO 8601 format (e.g., 2022-01-01T00:00:00.000Z).\ + \ Empty if the Call has not yet been dialed." + format: date-time + nullable: true + type: string + x-is-date-time: true endTime: description: "End time of the Call (GMT) in RFC 1123 format (e.g., Mon,\ \ 15 Jun 2009 20:45:30 GMT). Empty if the Call did not complete successfully." nullable: true type: string + endTimeISO: + description: "End time of the Call in ISO 8601 format (e.g., 2022-01-01T00:00:00.000Z).\ + \ Empty if the Call did not complete successfully." + format: date-time + nullable: true + type: string + x-is-date-time: true duration: description: "Total length of the Call in seconds. Measures time between\ \ startTime and endTime. This value is empty for busy, failed, unanswered\ @@ -7343,38 +7563,61 @@ components: \ failed, unanswered or ongoing Calls." nullable: true type: integer + audioStreamDuration: + description: Length of time that the Call used the audio stream in seconds. + This value is empty or zero when the Call did not use the audio stream. + nullable: true + type: integer direction: $ref: '#/components/schemas/CallDirection' answeredBy: $ref: '#/components/schemas/AnsweredBy' + callerName: + description: The caller ID name (CNAM) for this Call. Empty if unavailable. + nullable: true + type: string + webRTC: + description: Indicates whether this Call was initiated via WebRTC. + nullable: true + type: boolean subresourceUris: - $ref: '#/components/schemas/CallResult_allOf_subresourceUris' + $ref: '#/components/schemas/CallResultAllOfSubresourceUris' applicationId: description: ApplicationId associated with the Call. nullable: true type: string type: object example: + phoneNumberId: phoneNumberId + callerName: callerName + duration: 6 + dateCreated: dateCreated + connectTime: connectTime + subresourceUris: + recordings: recordings + logs: logs + from: from + startTime: startTime + startTimeISO: 2000-01-23T04:56:07.000+00:00 + direction: inbound callId: callId + connectTimeISO: 2000-01-23T04:56:07.000+00:00 + webRTC: true + endTimeISO: 2000-01-23T04:56:07.000+00:00 answeredBy: human parentCallId: parentCallId + audioStreamDuration: 5 uri: uri - phoneNumberId: phoneNumberId + dateUpdatedISO: 2000-01-23T04:56:07.000+00:00 dateUpdated: dateUpdated revision: 0 - duration: 6 accountId: accountId - dateCreated: dateCreated - connectTime: connectTime connectDuration: 1 - subresourceUris: null - from: from - startTime: startTime to: to endTime: endTime applicationId: applicationId + dateCreatedISO: 2000-01-23T04:56:07.000+00:00 status: queued - direction: inbound UpdateCallRequest: example: status: canceled @@ -7499,46 +7742,66 @@ components: total: 0 nextPageUri: nextPageUri calls: - - callId: callId + - phoneNumberId: phoneNumberId + callerName: callerName + duration: 6 + dateCreated: dateCreated + connectTime: connectTime + subresourceUris: + recordings: recordings + logs: logs + from: from + startTime: startTime + startTimeISO: 2000-01-23T04:56:07.000+00:00 + direction: inbound + callId: callId + connectTimeISO: 2000-01-23T04:56:07.000+00:00 + webRTC: true + endTimeISO: 2000-01-23T04:56:07.000+00:00 answeredBy: human parentCallId: parentCallId + audioStreamDuration: 5 uri: uri - phoneNumberId: phoneNumberId + dateUpdatedISO: 2000-01-23T04:56:07.000+00:00 dateUpdated: dateUpdated revision: 0 - duration: 6 accountId: accountId - dateCreated: dateCreated - connectTime: connectTime connectDuration: 1 - subresourceUris: null - from: from - startTime: startTime to: to endTime: endTime applicationId: applicationId + dateCreatedISO: 2000-01-23T04:56:07.000+00:00 status: queued + - phoneNumberId: phoneNumberId + callerName: callerName + duration: 6 + dateCreated: dateCreated + connectTime: connectTime + subresourceUris: + recordings: recordings + logs: logs + from: from + startTime: startTime + startTimeISO: 2000-01-23T04:56:07.000+00:00 direction: inbound - - callId: callId + callId: callId + connectTimeISO: 2000-01-23T04:56:07.000+00:00 + webRTC: true + endTimeISO: 2000-01-23T04:56:07.000+00:00 answeredBy: human parentCallId: parentCallId + audioStreamDuration: 5 uri: uri - phoneNumberId: phoneNumberId + dateUpdatedISO: 2000-01-23T04:56:07.000+00:00 dateUpdated: dateUpdated revision: 0 - duration: 6 accountId: accountId - dateCreated: dateCreated - connectTime: connectTime connectDuration: 1 - subresourceUris: null - from: from - startTime: startTime to: to endTime: endTime applicationId: applicationId + dateCreatedISO: 2000-01-23T04:56:07.000+00:00 status: queued - direction: inbound start: 6 pageSize: 2 end: 1 @@ -7715,7 +7978,10 @@ components: nullable: true type: string playBeep: - $ref: '#/components/schemas/PlayBeep' + allOf: + - $ref: '#/components/schemas/PlayBeep' + description: "Setting that controls when a beep is played. One of: always,\ + \ never, entryOnly, exitOnly. Defaults to always." record: description: Flag indicating whether recording is enabled for this Conference. nullable: true @@ -7754,7 +8020,7 @@ components: dateUpdated: dateUpdated revision: 7 accountId: accountId - playBeep: always + playBeep: "" dateCreated: dateCreated waitUrl: https://openapi-generator.tech conferenceId: conferenceId @@ -7799,8 +8065,7 @@ components: mediaUrls: - https://openapi-generator.tech - https://openapi-generator.tech - tfn: - campaignId: campaignId + tfn: "" status: new direction: direction - notificationUrl: https://openapi-generator.tech @@ -7821,8 +8086,7 @@ components: mediaUrls: - https://openapi-generator.tech - https://openapi-generator.tech - tfn: - campaignId: campaignId + tfn: "" status: new direction: direction end: 1 @@ -7937,7 +8201,7 @@ components: dateUpdated: dateUpdated revision: 7 accountId: accountId - playBeep: always + playBeep: "" dateCreated: dateCreated waitUrl: https://openapi-generator.tech conferenceId: conferenceId @@ -7951,7 +8215,7 @@ components: dateUpdated: dateUpdated revision: 7 accountId: accountId - playBeep: always + playBeep: "" dateCreated: dateCreated waitUrl: https://openapi-generator.tech conferenceId: conferenceId @@ -8019,7 +8283,9 @@ components: type: array x-is-list: true tfn: - $ref: '#/components/schemas/TFN' + allOf: + - $ref: '#/components/schemas/TFN' + nullable: true phoneNumberId: description: String that uniquely identifies the phoneNumber resource used to send this Message @@ -8050,8 +8316,7 @@ components: mediaUrls: - https://openapi-generator.tech - https://openapi-generator.tech - tfn: - campaignId: campaignId + tfn: "" status: new direction: direction TFNCampaign: @@ -8299,6 +8564,10 @@ components: removed from the queue. nullable: true type: integer + averageWaitTime: + description: The average wait time (in seconds) of all Calls in the Queue. + nullable: true + type: integer subresourceUris: $ref: '#/components/schemas/QueueResult_allOf_subresourceUris' type: object @@ -8307,6 +8576,7 @@ components: queueId: queueId dateCreated: dateCreated averageQueueRemovalTime: 5 + averageWaitTime: 5 subresourceUris: null alias: alias maxSize: 6 @@ -8352,6 +8622,7 @@ components: queueId: queueId dateCreated: dateCreated averageQueueRemovalTime: 5 + averageWaitTime: 5 subresourceUris: null alias: alias maxSize: 6 @@ -8363,6 +8634,7 @@ components: queueId: queueId dateCreated: dateCreated averageQueueRemovalTime: 5 + averageWaitTime: 5 subresourceUris: null alias: alias maxSize: 6 @@ -9963,12 +10235,6 @@ components: nullable: true type: object x-is-object: true - CallResult_allOf_subresourceUris: - description: The list of subresources for this Call. These include things like - logs and recordings associated with the Call. - nullable: true - type: object - x-is-object: true ConferenceResult_allOf_subresourceUris: description: The list of subresources for this Conference. This includes participants and/or recordings. diff --git a/docs/AudioStream.md b/docs/AudioStream.md new file mode 100644 index 00000000..4094b252 --- /dev/null +++ b/docs/AudioStream.md @@ -0,0 +1,16 @@ +# freeclimb.Model.AudioStream + +The `AudioStream` command transfers control of the call to a gRPC session. Upon completion of the gRPC session, if the actionUrl is specified, control can be returned to percl usage or the call will simply be hung up if the actionUrl is not specified. +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**Command** | **string** | Name of PerCL Command (this is automatically derived from mapping configuration and should not be manually supplied in any arguments) | [optional] +**Location** | **string** | The gRPC server location that will receive the grpc stream as a uri and must be port 80 or 443. | +**ActionUrl** | **string** | A request is made to this URL when the gRPC session is concluded. The PerCL script returned in response to the actionUrl will be executed on the call. | [optional] +**ContentType** | **string** | The type and sample rate of the audio being received over the channel must match the environmental sample rate. | [optional] +**MetaData** | **List<string>** | An arbitrary array of strings passed through FC to the GRPC server can be used to pass state or other information about the call. | [optional] +**PrivacyMode** | **bool** | Enables audio redaction with full call recording while gRPC session is running and blocks logging of any DTMFs received by FreeClimb. | [optional] + +[[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/AudioStreamWebhook.md b/docs/AudioStreamWebhook.md new file mode 100644 index 00000000..5832e6ca --- /dev/null +++ b/docs/AudioStreamWebhook.md @@ -0,0 +1,19 @@ +# freeclimb.Model.AudioStreamWebhook + +A gRPC session has ended for this Call its actionUrl is being invoked. A PerCL response is expected — unless the URL is invoked due to the participant hanging up. +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**RequestType** | **string** | Context or reason why this request is being made. Will be audioStream - gRPC session for this Call has ended and its actionUrl is being invoked. | [optional] +**CallId** | **string** | Unique ID for this Call, generated by FreeClimb. This is the call leg which ended its gRPC session. | [optional] +**AccountId** | **string** | Account ID associated with your account. | [optional] +**From** | **string** | Phone number of the party that initiated the Call (in E.164 format). | [optional] +**To** | **string** | Phone number provisioned to you and to which this Call is directed (in E.164 format). | [optional] +**CallStatus** | **CallStatus** | | [optional] +**Direction** | **CallDirection** | | [optional] +**ConferenceId** | **string** | This is only populated if request pertains to a Conference. Otherwise, it is set to null. | [optional] +**QueueId** | **string** | This is only populated if the request pertains to a Queue. Otherwise, it is set to null. | [optional] + +[[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/AvailableNumber.md b/docs/AvailableNumber.md index 11fc40dd..9d3ff303 100644 --- a/docs/AvailableNumber.md +++ b/docs/AvailableNumber.md @@ -7,6 +7,7 @@ Name | Type | Description | Notes **Capabilities** | [**Capabilities**](Capabilities.md) | | [optional] **CampaignId** | **string** | The campaign ID generated by the campaign registry | [optional] **PhoneNumber** | **string** | The phone number, in E.164 format (+ country code and phone number: +18003608245). | [optional] +**Alias** | **string** | A nicely-formatted version of the phone number. | [optional] **Region** | **string** | The state or province of this phone number. | [optional] **Country** | **string** | The country of this phone number. | [optional] diff --git a/docs/CallResult.md b/docs/CallResult.md index b71d1e90..f5714f6d 100644 --- a/docs/CallResult.md +++ b/docs/CallResult.md @@ -8,6 +8,8 @@ Name | Type | Description | Notes **DateCreated** | **string** | The date that this resource was created (GMT) in RFC 1123 format (e.g., Mon, 15 Jun 2009 20:45:30 GMT). | [optional] **DateUpdated** | **string** | The date that this resource was last updated (GMT) in RFC 1123 format (e.g., Mon, 15 Jun 2009 20:45:30 GMT). | [optional] **Revision** | **int** | Revision count for the resource. This count is set to 1 on creation and is incremented every time it is updated. | [optional] +**DateCreatedISO** | **DateTime?** | The date that this resource was created in ISO 8601 format (e.g., 2022-01-01T00:00:00.000Z). | [optional] +**DateUpdatedISO** | **DateTime?** | The date that this resource was last updated in ISO 8601 format (e.g., 2022-01-01T00:00:00.000Z). | [optional] **CallId** | **string** | String that uniquely identifies this Call resource. | [optional] **ParentCallId** | **string** | ID of the Call that created this leg (child Call). | [optional] **AccountId** | **string** | ID of the account that owns this Call. | [optional] @@ -16,13 +18,19 @@ Name | Type | Description | Notes **PhoneNumberId** | **string** | If the Call was inbound, this is the ID of the IncomingPhoneNumber that received the Call (DNIS). If the Call was outbound, this is the ID of the phone number from which the Call was placed (ANI). | [optional] **Status** | **CallStatus** | | [optional] **StartTime** | **string** | Start time of the Call (GMT) in RFC 1123 format (e.g., Mon, 15 Jun 2009 20:45:30 GMT). Empty if the Call has not yet been dialed. | [optional] +**StartTimeISO** | **DateTime?** | Start time of the Call in ISO 8601 format (e.g., 2022-01-01T00:00:00.000Z). Empty if the Call has not yet been dialed. | [optional] **ConnectTime** | **string** | Time the Call was answered (GMT) in RFC 1123 format (e.g., Mon, 15 Jun 2009 20:45:30 GMT). Empty if the Call has not yet been dialed. | [optional] +**ConnectTimeISO** | **DateTime?** | Time the Call was answered in ISO 8601 format (e.g., 2022-01-01T00:00:00.000Z). Empty if the Call has not yet been dialed. | [optional] **EndTime** | **string** | End time of the Call (GMT) in RFC 1123 format (e.g., Mon, 15 Jun 2009 20:45:30 GMT). Empty if the Call did not complete successfully. | [optional] +**EndTimeISO** | **DateTime?** | End time of the Call in ISO 8601 format (e.g., 2022-01-01T00:00:00.000Z). Empty if the Call did not complete successfully. | [optional] **Duration** | **int?** | Total length of the Call in seconds. Measures time between startTime and endTime. This value is empty for busy, failed, unanswered or ongoing Calls. | [optional] **ConnectDuration** | **int?** | Length of time that the Call was connected in seconds. Measures time between connectTime and endTime. This value is empty for busy, failed, unanswered or ongoing Calls. | [optional] +**AudioStreamDuration** | **int?** | Length of time that the Call used the audio stream in seconds. This value is empty or zero when the Call did not use the audio stream. | [optional] **Direction** | **CallDirection** | | [optional] **AnsweredBy** | **AnsweredBy** | | [optional] -**SubresourceUris** | **Object** | The list of subresources for this Call. These include things like logs and recordings associated with the Call. | [optional] +**CallerName** | **string** | The caller ID name (CNAM) for this Call. Empty if unavailable. | [optional] +**WebRTC** | **bool?** | Indicates whether this Call was initiated via WebRTC. | [optional] +**SubresourceUris** | [**CallResultAllOfSubresourceUris**](CallResultAllOfSubresourceUris.md) | | [optional] **ApplicationId** | **string** | ApplicationId associated with the Call. | [optional] [[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/CallResultAllOfSubresourceUris.md b/docs/CallResultAllOfSubresourceUris.md new file mode 100644 index 00000000..c0fc1bed --- /dev/null +++ b/docs/CallResultAllOfSubresourceUris.md @@ -0,0 +1,12 @@ +# freeclimb.Model.CallResultAllOfSubresourceUris + +The list of subresources for this Call. These include things like logs and recordings associated with the Call. +## Properties + +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**Logs** | **string** | The URI for the logs associated with this Call. | [optional] +**Recordings** | **string** | The URI for the recordings associated with this Call. | [optional] + +[[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/ConferenceResult.md b/docs/ConferenceResult.md index 910211fd..fa0c2931 100644 --- a/docs/ConferenceResult.md +++ b/docs/ConferenceResult.md @@ -11,7 +11,7 @@ Name | Type | Description | Notes **ConferenceId** | **string** | A string that uniquely identifies this Conference resource. | [optional] **AccountId** | **string** | ID of the account that created this Conference. | [optional] **Alias** | **string** | A description for this Conference. | [optional] -**PlayBeep** | **PlayBeep** | | [optional] +**PlayBeep** | **PlayBeep** | Setting that controls when a beep is played. One of: always, never, entryOnly, exitOnly. Defaults to always. | [optional] **Record** | **bool?** | Flag indicating whether recording is enabled for this Conference. | [optional] **Status** | **ConferenceStatus** | | [optional] **WaitUrl** | **string** | URL referencing the audio file to be used as default wait music for the Conference when it is in the populated state. | [optional] diff --git a/docs/DefaultApi.md b/docs/DefaultApi.md index c73af291..2f6b48f6 100644 --- a/docs/DefaultApi.md +++ b/docs/DefaultApi.md @@ -360,7 +360,7 @@ catch (ApiException e) ### HTTP response details | Status code | Description | Response headers | |-------------|-------------|------------------| -| **200** | Successfuly created queue | - | +| **201** | Successfuly created queue | - | [[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) @@ -4368,7 +4368,7 @@ catch (ApiException e) # **ListCallRecordings** -> RecordingList ListCallRecordings (string callId, string? dateCreated = null) +> RecordingList ListCallRecordings (string callId, string? dateCreated = null, string? startTime = null, string? endTime = null) List Call Recordings @@ -4398,10 +4398,14 @@ namespace Example var dateCreated = "dateCreated_example"; // string? | Only show recordings created on the specified date, in the form *YYYY-MM-DD*. (optional) + var startTime = "startTime_example"; // string? | Only show Recordings created at or after this time, given as YYYY-MM-DD hh:mm:ss. (optional) + + var endTime = "endTime_example"; // string? | Only show Recordings created at or before this time, given as YYYY-MM-DD hh:mm:ss. (optional) + try { // List Call Recordings - RecordingList result = apiInstance.ListCallRecordings(callId, dateCreated); + RecordingList result = apiInstance.ListCallRecordings(callId, dateCreated, startTime, endTime); Debug.WriteLine(result); } catch (ApiException e) @@ -4422,7 +4426,7 @@ This returns an ApiResponse object which contains the response data, status code try { // List Call Recordings - ApiResponse response = apiInstance.ListCallRecordingsWithHttpInfo(callId, dateCreated); + ApiResponse response = apiInstance.ListCallRecordingsWithHttpInfo(callId, dateCreated, startTime, endTime); Debug.Write("Status Code: " + response.StatusCode); Debug.Write("Response Headers: " + response.Headers); Debug.Write("Response Body: " + response.Data); @@ -4445,6 +4449,10 @@ catch (ApiException e) | **dateCreated** | **string?** | Only show recordings created on the specified date, in the form *YYYY-MM-DD*. | [optional] | +| **startTime** | **string?** | Only show Recordings created at or after this time, given as YYYY-MM-DD hh:mm:ss. | [optional] | + +| **endTime** | **string?** | Only show Recordings created at or before this time, given as YYYY-MM-DD hh:mm:ss. | [optional] | + ### Return type @@ -4469,7 +4477,7 @@ catch (ApiException e) # **ListCalls** -> CallList ListCalls (bool? active = null, string? to = null, string? from = null, CallStatus? status = null, string? startTime = null, string? endTime = null, string? parentCallId = null, List? applicationId = null, int? riskScoreMin = null, int? riskScoreMax = null) +> CallList ListCalls (bool? usedAudioStream = null, bool? active = null, string? to = null, string? from = null, CallStatus? status = null, string? startTime = null, string? endTime = null, string? parentCallId = null, List? applicationId = null, int? riskScoreMin = null, int? riskScoreMax = null, bool? webRTC = null) List Calls @@ -4495,6 +4503,8 @@ namespace Example var apiInstance = new DefaultApi(config); + var usedAudioStream = false; // bool? | If usedAudioStream is set to true then all calls that have a audioStreamDuration > 0 will be returned (optional) (default to false) + var active = false; // bool? | If active is set to true then all calls of the nature queued, ringing, inProgress are returned in the query. (optional) (default to false) var to = "to_example"; // string? | Only show Calls to this phone number. (optional) @@ -4515,10 +4525,12 @@ namespace Example var riskScoreMax = 56; // int? | The maximum riskScore that should be included in the list. (optional) + var webRTC = false; // bool? | Only show Calls that were originated via WebRTC. (optional) (default to false) + try { // List Calls - CallList result = apiInstance.ListCalls(active, to, from, status, startTime, endTime, parentCallId, applicationId, riskScoreMin, riskScoreMax); + CallList result = apiInstance.ListCalls(usedAudioStream, active, to, from, status, startTime, endTime, parentCallId, applicationId, riskScoreMin, riskScoreMax, webRTC); Debug.WriteLine(result); } catch (ApiException e) @@ -4539,7 +4551,7 @@ This returns an ApiResponse object which contains the response data, status code try { // List Calls - ApiResponse response = apiInstance.ListCallsWithHttpInfo(active, to, from, status, startTime, endTime, parentCallId, applicationId, riskScoreMin, riskScoreMax); + ApiResponse response = apiInstance.ListCallsWithHttpInfo(usedAudioStream, active, to, from, status, startTime, endTime, parentCallId, applicationId, riskScoreMin, riskScoreMax, webRTC); Debug.Write("Status Code: " + response.StatusCode); Debug.Write("Response Headers: " + response.Headers); Debug.Write("Response Body: " + response.Data); @@ -4558,6 +4570,8 @@ catch (ApiException e) |------|------|-------------|-------| +| **usedAudioStream** | **bool?** | If usedAudioStream is set to true then all calls that have a audioStreamDuration > 0 will be returned | [optional] [default to false] | + | **active** | **bool?** | If active is set to true then all calls of the nature queued, ringing, inProgress are returned in the query. | [optional] [default to false] | | **to** | **string?** | Only show Calls to this phone number. | [optional] | @@ -4578,6 +4592,8 @@ catch (ApiException e) | **riskScoreMax** | **int?** | The maximum riskScore that should be included in the list. | [optional] | +| **webRTC** | **bool?** | Only show Calls that were originated via WebRTC. | [optional] [default to false] | + ### Return type @@ -4602,7 +4618,7 @@ catch (ApiException e) # **ListConferenceRecordings** -> RecordingList ListConferenceRecordings (string conferenceId, string? callId = null, string? dateCreated = null) +> RecordingList ListConferenceRecordings (string conferenceId, string? callId = null, string? dateCreated = null, string? startTime = null, string? endTime = null) List Conference Recordings @@ -4634,10 +4650,14 @@ namespace Example var dateCreated = "dateCreated_example"; // string? | Only show Recordings created on this date, formatted as *YYYY-MM-DD*. (optional) + var startTime = "startTime_example"; // string? | Only show Recordings created at or after this time, given as YYYY-MM-DD hh:mm:ss. (optional) + + var endTime = "endTime_example"; // string? | Only show Recordings created at or before this time, given as YYYY-MM-DD hh:mm:ss. (optional) + try { // List Conference Recordings - RecordingList result = apiInstance.ListConferenceRecordings(conferenceId, callId, dateCreated); + RecordingList result = apiInstance.ListConferenceRecordings(conferenceId, callId, dateCreated, startTime, endTime); Debug.WriteLine(result); } catch (ApiException e) @@ -4658,7 +4678,7 @@ This returns an ApiResponse object which contains the response data, status code try { // List Conference Recordings - ApiResponse response = apiInstance.ListConferenceRecordingsWithHttpInfo(conferenceId, callId, dateCreated); + ApiResponse response = apiInstance.ListConferenceRecordingsWithHttpInfo(conferenceId, callId, dateCreated, startTime, endTime); Debug.Write("Status Code: " + response.StatusCode); Debug.Write("Response Headers: " + response.Headers); Debug.Write("Response Body: " + response.Data); @@ -4683,6 +4703,10 @@ catch (ApiException e) | **dateCreated** | **string?** | Only show Recordings created on this date, formatted as *YYYY-MM-DD*. | [optional] | +| **startTime** | **string?** | Only show Recordings created at or after this time, given as YYYY-MM-DD hh:mm:ss. | [optional] | + +| **endTime** | **string?** | Only show Recordings created at or before this time, given as YYYY-MM-DD hh:mm:ss. | [optional] | + ### Return type @@ -5272,7 +5296,7 @@ catch (ApiException e) # **ListRecordings** -> RecordingList ListRecordings (string? callId = null, string? conferenceId = null, string? dateCreated = null) +> RecordingList ListRecordings (string? callId = null, string? conferenceId = null, string? dateCreated = null, string? startTime = null, string? endTime = null) List Recordings @@ -5304,10 +5328,14 @@ namespace Example var dateCreated = "dateCreated_example"; // string? | Only show Recordings created on this date, formatted as *YYYY-MM-DD*. (optional) + var startTime = "startTime_example"; // string? | Only show Recordings created at or after this time, given as YYYY-MM-DD hh:mm:ss. (optional) + + var endTime = "endTime_example"; // string? | Only show Recordings created at or before this time, given as YYYY-MM-DD hh:mm:ss. (optional) + try { // List Recordings - RecordingList result = apiInstance.ListRecordings(callId, conferenceId, dateCreated); + RecordingList result = apiInstance.ListRecordings(callId, conferenceId, dateCreated, startTime, endTime); Debug.WriteLine(result); } catch (ApiException e) @@ -5328,7 +5356,7 @@ This returns an ApiResponse object which contains the response data, status code try { // List Recordings - ApiResponse response = apiInstance.ListRecordingsWithHttpInfo(callId, conferenceId, dateCreated); + ApiResponse response = apiInstance.ListRecordingsWithHttpInfo(callId, conferenceId, dateCreated, startTime, endTime); Debug.Write("Status Code: " + response.StatusCode); Debug.Write("Response Headers: " + response.Headers); Debug.Write("Response Body: " + response.Data); @@ -5353,6 +5381,10 @@ catch (ApiException e) | **dateCreated** | **string?** | Only show Recordings created on this date, formatted as *YYYY-MM-DD*. | [optional] | +| **startTime** | **string?** | Only show Recordings created at or after this time, given as YYYY-MM-DD hh:mm:ss. | [optional] | + +| **endTime** | **string?** | Only show Recordings created at or before this time, given as YYYY-MM-DD hh:mm:ss. | [optional] | + ### Return type diff --git a/docs/QueueResult.md b/docs/QueueResult.md index 2feacc32..09d6a8c8 100644 --- a/docs/QueueResult.md +++ b/docs/QueueResult.md @@ -14,6 +14,7 @@ Name | Type | Description | Notes **MaxSize** | **int?** | The maximum number of Calls permitted in the Queue. Default is 100. Maximum is 1000. | [optional] **CurrentSize** | **int?** | Count of Calls currently in the Queue. | [optional] **AverageQueueRemovalTime** | **int?** | The average amount of time (in seconds) for a call to be removed from the queue. | [optional] +**AverageWaitTime** | **int?** | The average wait time (in seconds) of all Calls in the Queue. | [optional] **SubresourceUris** | **Object** | List of subresources for this Queue (which includes Queue members). | [optional] [[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/RequestType.md b/docs/RequestType.md index 6306a561..d380f0b1 100644 --- a/docs/RequestType.md +++ b/docs/RequestType.md @@ -17,16 +17,17 @@ Name | Value | Notes **DEQUEUE** | dequeue | Represented in C# as 11 **QUEUE_WAIT** | queueWait | Represented in C# as 12 **ADD_TO_QUEUE_NOTIFICATION** | addToQueueNotification | Represented in C# as 13 -**REMOVE_FROM_QUEUE_NOTIFICATION** | removeFromQueueNotification | Represented in C# as 14 -**CALL_STATUS** | callStatus | Represented in C# as 15 -**CREATE_CONFERENCE** | createConference | Represented in C# as 16 -**CONFERENCE_STATUS** | conferenceStatus | Represented in C# as 17 -**LEAVE_CONFERENCE** | leaveConference | Represented in C# as 18 -**ADD_TO_CONFERENCE_NOTIFICATION** | addToConferenceNotification | Represented in C# as 19 -**CONFERENCE_RECORDING_STATUS** | conferenceRecordingStatus | Represented in C# as 20 -**CONFERENCE_CALL_CONTROL** | conferenceCallControl | Represented in C# as 21 -**MESSAGE_DELIVERY** | messageDelivery | Represented in C# as 22 -**MESSAGE_STATUS** | messageStatus | Represented in C# as 23 +**AUDIO_STREAM** | audioStream | Represented in C# as 14 +**REMOVE_FROM_QUEUE_NOTIFICATION** | removeFromQueueNotification | Represented in C# as 15 +**CALL_STATUS** | callStatus | Represented in C# as 16 +**CREATE_CONFERENCE** | createConference | Represented in C# as 17 +**CONFERENCE_STATUS** | conferenceStatus | Represented in C# as 18 +**LEAVE_CONFERENCE** | leaveConference | Represented in C# as 19 +**ADD_TO_CONFERENCE_NOTIFICATION** | addToConferenceNotification | Represented in C# as 20 +**CONFERENCE_RECORDING_STATUS** | conferenceRecordingStatus | Represented in C# as 21 +**CONFERENCE_CALL_CONTROL** | conferenceCallControl | Represented in C# as 22 +**MESSAGE_DELIVERY** | messageDelivery | Represented in C# as 23 +**MESSAGE_STATUS** | messageStatus | Represented in C# as 24 [[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/freeclimb.sln b/freeclimb.sln index 9810ef27..5e58621e 100644 --- a/freeclimb.sln +++ b/freeclimb.sln @@ -2,7 +2,7 @@ Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio 2012 VisualStudioVersion = 12.0.0.0 MinimumVisualStudioVersion = 10.0.0.1 -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "freeclimb", "src\freeclimb\freeclimb.csproj", "{F1A65C9B-6999-40AF-80E1-7EB2A02998F2}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "freeclimb", "src\freeclimb\freeclimb.csproj", "{33D0C153-0591-4598-AA00-2B7BCE797CDE}" EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "freeclimb.Test", "src\freeclimb.Test\freeclimb.Test.csproj", "{19F1DEBC-DE5E-4517-8062-F000CD499087}" EndProject @@ -12,10 +12,10 @@ Global Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {F1A65C9B-6999-40AF-80E1-7EB2A02998F2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {F1A65C9B-6999-40AF-80E1-7EB2A02998F2}.Debug|Any CPU.Build.0 = Debug|Any CPU - {F1A65C9B-6999-40AF-80E1-7EB2A02998F2}.Release|Any CPU.ActiveCfg = Release|Any CPU - {F1A65C9B-6999-40AF-80E1-7EB2A02998F2}.Release|Any CPU.Build.0 = Release|Any CPU + {33D0C153-0591-4598-AA00-2B7BCE797CDE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {33D0C153-0591-4598-AA00-2B7BCE797CDE}.Debug|Any CPU.Build.0 = Debug|Any CPU + {33D0C153-0591-4598-AA00-2B7BCE797CDE}.Release|Any CPU.ActiveCfg = Release|Any CPU + {33D0C153-0591-4598-AA00-2B7BCE797CDE}.Release|Any CPU.Build.0 = Release|Any CPU {19F1DEBC-DE5E-4517-8062-F000CD499087}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {19F1DEBC-DE5E-4517-8062-F000CD499087}.Debug|Any CPU.Build.0 = Debug|Any CPU {19F1DEBC-DE5E-4517-8062-F000CD499087}.Release|Any CPU.ActiveCfg = Release|Any CPU diff --git a/package.json b/package.json index 6306e261..036ebec6 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "dependencies": { "@stoplight/prism-cli": "5.14.2", - "fast-xml-parser": "^5.2.5", + "fast-xml-parser": "^5.3.8", "jsonpath-plus": "^10.3.0" } } diff --git a/src/freeclimb.Test/Api/DefaultApiTests.cs b/src/freeclimb.Test/Api/DefaultApiTests.cs index 7a7bbf4b..065c50ed 100644 --- a/src/freeclimb.Test/Api/DefaultApiTests.cs +++ b/src/freeclimb.Test/Api/DefaultApiTests.cs @@ -623,7 +623,11 @@ public void ListCallRecordingsTest() string? dateCreated = dateCreatedTestValue(); - var response = instance.ListCallRecordings(callId, dateCreated); + string? startTime = startTimeTestValue(); + + string? endTime = endTimeTestValue(); + + var response = instance.ListCallRecordings(callId, dateCreated, startTime, endTime); Assert.IsAssignableFrom(response); } @@ -633,6 +637,8 @@ public void ListCallRecordingsTest() [Fact] public void ListCallsTest() { + bool? usedAudioStream = usedAudioStreamTestValue(); + bool? active = activeTestValue(); string? to = toTestValue(); @@ -653,7 +659,10 @@ public void ListCallsTest() int? riskScoreMax = riskScoreMaxTestValue(); + bool? webRTC = webRTCTestValue(); + var response = instance.ListCalls( + usedAudioStream, active, to, from, @@ -663,7 +672,8 @@ public void ListCallsTest() parentCallId, applicationId, riskScoreMin, - riskScoreMax + riskScoreMax, + webRTC ); Assert.IsAssignableFrom(response); } @@ -680,7 +690,17 @@ public void ListConferenceRecordingsTest() string? dateCreated = dateCreatedTestValue(); - var response = instance.ListConferenceRecordings(conferenceId, callId, dateCreated); + string? startTime = startTimeTestValue(); + + string? endTime = endTimeTestValue(); + + var response = instance.ListConferenceRecordings( + conferenceId, + callId, + dateCreated, + startTime, + endTime + ); Assert.IsAssignableFrom(response); } @@ -811,7 +831,17 @@ public void ListRecordingsTest() string? dateCreated = dateCreatedTestValue(); - var response = instance.ListRecordings(callId, conferenceId, dateCreated); + string? startTime = startTimeTestValue(); + + string? endTime = endTimeTestValue(); + + var response = instance.ListRecordings( + callId, + conferenceId, + dateCreated, + startTime, + endTime + ); Assert.IsAssignableFrom(response); } @@ -1257,7 +1287,11 @@ public void ListCallRecordingsGetNextPageTest() string? dateCreated = dateCreatedTestValue(); - var response = instance.ListCallRecordings(callId, dateCreated); + string? startTime = startTimeTestValue(); + + string? endTime = endTimeTestValue(); + + var response = instance.ListCallRecordings(callId, dateCreated, startTime, endTime); //Assert.IsType(response); Assert.IsAssignableFrom(response); response.NextPageUri = "/Accounts/{accountId}/Calls/{callId}/Recordings?cursor=1"; @@ -1272,6 +1306,8 @@ public void ListCallRecordingsGetNextPageTest() [Fact] public void ListCallsGetNextPageTest() { + bool? usedAudioStream = usedAudioStreamTestValue(); + bool? active = activeTestValue(); string? to = toTestValue(); @@ -1292,7 +1328,10 @@ public void ListCallsGetNextPageTest() int? riskScoreMax = riskScoreMaxTestValue(); + bool? webRTC = webRTCTestValue(); + var response = instance.ListCalls( + usedAudioStream, active, to, from, @@ -1302,7 +1341,8 @@ public void ListCallsGetNextPageTest() parentCallId, applicationId, riskScoreMin, - riskScoreMax + riskScoreMax, + webRTC ); //Assert.IsType(response); Assert.IsAssignableFrom(response); @@ -1324,7 +1364,17 @@ public void ListConferenceRecordingsGetNextPageTest() string? dateCreated = dateCreatedTestValue(); - var response = instance.ListConferenceRecordings(conferenceId, callId, dateCreated); + string? startTime = startTimeTestValue(); + + string? endTime = endTimeTestValue(); + + var response = instance.ListConferenceRecordings( + conferenceId, + callId, + dateCreated, + startTime, + endTime + ); //Assert.IsType(response); Assert.IsAssignableFrom(response); response.NextPageUri = @@ -1487,7 +1537,17 @@ public void ListRecordingsGetNextPageTest() string? dateCreated = dateCreatedTestValue(); - var response = instance.ListRecordings(callId, conferenceId, dateCreated); + string? startTime = startTimeTestValue(); + + string? endTime = endTimeTestValue(); + + var response = instance.ListRecordings( + callId, + conferenceId, + dateCreated, + startTime, + endTime + ); //Assert.IsType(response); Assert.IsAssignableFrom(response); response.NextPageUri = "/Accounts/{accountId}/Recordings?cursor=1"; @@ -1796,6 +1856,8 @@ private CallResult callResultTestValue() dateCreatedTestValue(), "Mon, 15 Jun 2020 20:45:32 GMT", 1, + DateTime.Now, + DateTime.Now, callIdTestValue(), null, accountIdTestValue(), @@ -1804,7 +1866,9 @@ private CallResult callResultTestValue() null, enumCallStatus, dateCreatedTestValue(), + DateTime.Now, dateCreatedTestValue(), + DateTime.Now, null ); } @@ -2168,5 +2232,15 @@ private ReplaceBlobRequest replaceBlobRequestTestValue() { return new ReplaceBlobRequest(new { }); } + + private bool usedAudioStreamTestValue() + { + return true; + } + + private bool webRTCTestValue() + { + return true; + } } } diff --git a/src/freeclimb.Test/Enums/RequestTypeTests.cs b/src/freeclimb.Test/Enums/RequestTypeTests.cs index 56794f7f..519e6b19 100644 --- a/src/freeclimb.Test/Enums/RequestTypeTests.cs +++ b/src/freeclimb.Test/Enums/RequestTypeTests.cs @@ -376,6 +376,31 @@ public void TestADD_TO_QUEUE_NOTIFICATIONShouldDeserializeToString() Assert.Equal(expectedValue, calculatedValue); } + [Fact] + public void TestAUDIO_STREAMShouldWork() + { + RequestType test = RequestType.AUDIO_STREAM; + Assert.Equal(typeof(RequestType), test.GetType()); + } + + [Fact] + public void TestAUDIO_STREAMShouldSerializeToEnum() + { + RequestType expectedValue = RequestType.AUDIO_STREAM; + RequestType calculatedValue = (RequestType) + Enum.Parse(typeof(RequestType), "AUDIO_STREAM"); + Assert.Equal(expectedValue, calculatedValue); + } + + [Fact] + public void TestAUDIO_STREAMShouldDeserializeToString() + { + RequestType test = RequestType.AUDIO_STREAM; + string expectedValue = "AUDIO_STREAM"; + string calculatedValue = test.ToString(); + Assert.Equal(expectedValue, calculatedValue); + } + [Fact] public void TestREMOVE_FROM_QUEUE_NOTIFICATIONShouldWork() { diff --git a/src/freeclimb.Test/Model/AudioStreamTests.cs b/src/freeclimb.Test/Model/AudioStreamTests.cs new file mode 100644 index 00000000..48afbd60 --- /dev/null +++ b/src/freeclimb.Test/Model/AudioStreamTests.cs @@ -0,0 +1,144 @@ +/* + * FreeClimb API + * + * FreeClimb is a cloud-based application programming interface (API) that puts the power of the Vail platform in your hands. FreeClimb simplifies the process of creating applications that can use a full range of telephony features without requiring specialized or on-site telephony equipment. Using the FreeClimb REST API to write applications is easy! You have the option to use the language of your choice or hit the API directly. Your application can execute a command by issuing a RESTful request to the FreeClimb API. The base URL to send HTTP requests to the FreeClimb REST API is: /apiserver. FreeClimb authenticates and processes your request. + * + * The version of the OpenAPI document: 1.0.0 + * Contact: support@freeclimb.com + * Generated by: https://github.com/openapitools/openapi-generator.git + */ + + +using System; +using System.Collections; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Reflection; +using freeclimb.Client; +using freeclimb.Enums; +using freeclimb.Model; +using freeclimb.Test; +using Newtonsoft.Json; +using Xunit; + +namespace freeclimb.Test.Model +{ + /// + /// Class for testing AudioStream + /// + /// + /// This file is automatically generated by OpenAPI Generator (https://openapi-generator.tech). + /// Please update the test case below to test the model. + /// + + public class AudioStreamTests : IDisposable + { + private AudioStream instance; + + public AudioStreamTests() + { + instance = new AudioStream( + location: (string)TestHelpers.getTestValue(typeof(string)), + actionUrl: (string)TestHelpers.getTestValue(typeof(string)), + contentType: (string)TestHelpers.getTestValue(typeof(string)), + metaData: (List)TestHelpers.getTestValue(typeof(List)), + privacyMode: (bool)TestHelpers.getTestValue(typeof(bool)) + ); + } + + public void Dispose() + { + // Cleanup when everything is done. + } + + /// + /// Test an instance of AudioStream + /// + [Fact] + public void AudioStreamInstanceTest() + { + Assert.IsType(instance); + } + + /// + /// Test the property 'Location' + /// + [Fact] + public void LocationTest() + { + instance.Location = "TEST_STRING"; + Assert.Equal("TEST_STRING", instance.Location); + } + + /// + /// Test the property 'ActionUrl' + /// + [Fact] + public void ActionUrlTest() + { + instance.ActionUrl = "TEST_STRING"; + Assert.Equal("TEST_STRING", instance.ActionUrl); + } + + /// + /// Test the property 'ContentType' + /// + [Fact] + public void ContentTypeTest() + { + instance.ContentType = "TEST_STRING"; + Assert.Equal("TEST_STRING", instance.ContentType); + } + + /// + /// Test the property 'MetaData' + /// + [Fact] + public void MetaDataTest() + { + List testList = new List(); + instance.MetaData = testList; + Assert.Equal(instance.MetaData, testList); + } + + /// + /// Test the property 'PrivacyMode' + /// + [Fact] + public void PrivacyModeTest() + { + instance.PrivacyMode = false; + Assert.False(instance.PrivacyMode); + } + + /// + /// Test serialize a AudioStream to JSON string - all values are present + /// + [Fact] + public void AudioStreamSerializeToJSONTest() + { + string json = instance.ToJson(); + + Assert.Contains("location", json); + + Assert.Contains("actionUrl", json); + + Assert.Contains("contentType", json); + + Assert.Contains("metaData", json); + + Assert.Contains("privacyMode", json); + } + + /// + /// Test serialize a AudioStream to JSON string - null values are stripped + /// + [Fact] + public void AudioStreamSerializeToJSONStripNullTest() + { + string json = instance.ToJson(); + Assert.DoesNotContain("null", json); + } + } +} diff --git a/src/freeclimb.Test/Model/AudioStreamWebhookTests.cs b/src/freeclimb.Test/Model/AudioStreamWebhookTests.cs new file mode 100644 index 00000000..4e7a7c39 --- /dev/null +++ b/src/freeclimb.Test/Model/AudioStreamWebhookTests.cs @@ -0,0 +1,226 @@ +/* + * FreeClimb API + * + * FreeClimb is a cloud-based application programming interface (API) that puts the power of the Vail platform in your hands. FreeClimb simplifies the process of creating applications that can use a full range of telephony features without requiring specialized or on-site telephony equipment. Using the FreeClimb REST API to write applications is easy! You have the option to use the language of your choice or hit the API directly. Your application can execute a command by issuing a RESTful request to the FreeClimb API. The base URL to send HTTP requests to the FreeClimb REST API is: /apiserver. FreeClimb authenticates and processes your request. + * + * The version of the OpenAPI document: 1.0.0 + * Contact: support@freeclimb.com + * Generated by: https://github.com/openapitools/openapi-generator.git + */ + + +using System; +using System.Collections; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Reflection; +using freeclimb.Client; +using freeclimb.Enums; +using freeclimb.Model; +using freeclimb.Test; +using Newtonsoft.Json; +using Xunit; + +namespace freeclimb.Test.Model +{ + /// + /// Class for testing AudioStreamWebhook + /// + /// + /// This file is automatically generated by OpenAPI Generator (https://openapi-generator.tech). + /// Please update the test case below to test the model. + /// + + public class AudioStreamWebhookTests : IDisposable + { + private AudioStreamWebhook instance; + + public AudioStreamWebhookTests() + { + instance = new AudioStreamWebhook( + requestType: (string)TestHelpers.getTestValue(typeof(string)), + callId: (string)TestHelpers.getTestValue(typeof(string)), + accountId: (string)TestHelpers.getTestValue(typeof(string)), + from: (string)TestHelpers.getTestValue(typeof(string)), + to: (string)TestHelpers.getTestValue(typeof(string)), + callStatus: (CallStatus)TestHelpers.getTestValue(typeof(CallStatus)), + direction: (CallDirection)TestHelpers.getTestValue(typeof(CallDirection)), + conferenceId: (string)TestHelpers.getTestValue(typeof(string)), + queueId: (string)TestHelpers.getTestValue(typeof(string)) + ); + } + + public void Dispose() + { + // Cleanup when everything is done. + } + + /// + /// Test an instance of AudioStreamWebhook + /// + [Fact] + public void AudioStreamWebhookInstanceTest() + { + Assert.IsType(instance); + } + + /// + /// Test the property 'RequestType' + /// + [Fact] + public void RequestTypeTest() { } + + /// + /// Test the property 'CallId' + /// + [Fact] + public void CallIdTest() + { + instance.CallId = "TEST_STRING"; + Assert.Equal("TEST_STRING", instance.CallId); + } + + /// + /// Test the property 'AccountId' + /// + [Fact] + public void AccountIdTest() + { + instance.AccountId = "TEST_STRING"; + Assert.Equal("TEST_STRING", instance.AccountId); + } + + /// + /// Test the property 'From' + /// + [Fact] + public void FromTest() + { + instance.From = "TEST_STRING"; + Assert.Equal("TEST_STRING", instance.From); + } + + /// + /// Test the property 'To' + /// + [Fact] + public void ToTest() + { + instance.To = "TEST_STRING"; + Assert.Equal("TEST_STRING", instance.To); + } + + /// + /// Test the property 'CallStatus' + /// + [Fact] + public void CallStatusTest() + { + instance.CallStatus = CallStatus.QUEUED; + Assert.Equal(CallStatus.QUEUED, instance.CallStatus); + instance.CallStatus = CallStatus.RINGING; + Assert.Equal(CallStatus.RINGING, instance.CallStatus); + instance.CallStatus = CallStatus.IN_PROGRESS; + Assert.Equal(CallStatus.IN_PROGRESS, instance.CallStatus); + instance.CallStatus = CallStatus.CANCELED; + Assert.Equal(CallStatus.CANCELED, instance.CallStatus); + instance.CallStatus = CallStatus.COMPLETED; + Assert.Equal(CallStatus.COMPLETED, instance.CallStatus); + instance.CallStatus = CallStatus.FAILED; + Assert.Equal(CallStatus.FAILED, instance.CallStatus); + instance.CallStatus = CallStatus.BUSY; + Assert.Equal(CallStatus.BUSY, instance.CallStatus); + instance.CallStatus = CallStatus.NO_ANSWER; + Assert.Equal(CallStatus.NO_ANSWER, instance.CallStatus); + } + + /// + /// Test the property 'Direction' + /// + [Fact] + public void DirectionTest() + { + instance.Direction = CallDirection.INBOUND; + Assert.Equal(CallDirection.INBOUND, instance.Direction); + instance.Direction = CallDirection.OUTBOUND_API; + Assert.Equal(CallDirection.OUTBOUND_API, instance.Direction); + instance.Direction = CallDirection.OUTBOUND_DIAL; + Assert.Equal(CallDirection.OUTBOUND_DIAL, instance.Direction); + } + + /// + /// Test the property 'ConferenceId' + /// + [Fact] + public void ConferenceIdTest() + { + instance.ConferenceId = "TEST_STRING"; + Assert.Equal("TEST_STRING", instance.ConferenceId); + } + + /// + /// Test the property 'QueueId' + /// + [Fact] + public void QueueIdTest() + { + instance.QueueId = "TEST_STRING"; + Assert.Equal("TEST_STRING", instance.QueueId); + } + + [Fact] + public void TestDeserializeJsonToAudioStreamWebhook() + { + string payload = @"{ ""requestType"": ""audioStream"" }"; + AudioStreamWebhook deserialized = AudioStreamWebhook.Deserialize(payload); + Assert.IsType(deserialized); + Assert.Equal("audioStream", deserialized.RequestType); + } + + /// + /// Test serialize a AudioStreamWebhook to JSON string - all values are present + /// + [Fact] + public void AudioStreamWebhookSerializeToJSONTest() + { + string json = instance.ToJson(); + + Assert.Contains("requestType", json); + + Assert.Contains("callId", json); + + Assert.Contains("accountId", json); + + Assert.Contains("from", json); + + Assert.Contains("to", json); + + Assert.Contains("callStatus", json); + + Assert.Contains("direction", json); + + Assert.Contains("conferenceId", json); + + Assert.Contains("queueId", json); + } + + /// + /// Test serialize a AudioStreamWebhook to JSON string - null values are stripped + /// + [Fact] + public void AudioStreamWebhookSerializeToJSONStripNullTest() + { + instance.CallStatus = null; + + instance.Direction = null; + + instance.ConferenceId = null; + + instance.QueueId = null; + + string json = instance.ToJson(); + Assert.DoesNotContain("null", json); + } + } +} diff --git a/src/freeclimb.Test/Model/AvailableNumberTests.cs b/src/freeclimb.Test/Model/AvailableNumberTests.cs index 987abc9c..c4e82b6a 100644 --- a/src/freeclimb.Test/Model/AvailableNumberTests.cs +++ b/src/freeclimb.Test/Model/AvailableNumberTests.cs @@ -42,6 +42,7 @@ public AvailableNumberTests() capabilities: (Capabilities)TestHelpers.getTestValue(typeof(Capabilities)), campaignId: (string)TestHelpers.getTestValue(typeof(string)), phoneNumber: (string)TestHelpers.getTestValue(typeof(string)), + alias: (string)TestHelpers.getTestValue(typeof(string)), region: (string)TestHelpers.getTestValue(typeof(string)), country: (string)TestHelpers.getTestValue(typeof(string)) ); @@ -92,6 +93,16 @@ public void PhoneNumberTest() Assert.Equal("TEST_STRING", instance.PhoneNumber); } + /// + /// Test the property 'Alias' + /// + [Fact] + public void AliasTest() + { + instance.Alias = "TEST_STRING"; + Assert.Equal("TEST_STRING", instance.Alias); + } + /// /// Test the property 'Region' /// @@ -126,6 +137,8 @@ public void AvailableNumberSerializeToJSONTest() Assert.Contains("phoneNumber", json); + Assert.Contains("alias", json); + Assert.Contains("region", json); Assert.Contains("country", json); @@ -141,6 +154,8 @@ public void AvailableNumberSerializeToJSONStripNullTest() instance.PhoneNumber = null; + instance.Alias = null; + instance.Region = null; instance.Country = null; diff --git a/src/freeclimb.Test/Model/CallResultAllOfSubresourceUrisTests.cs b/src/freeclimb.Test/Model/CallResultAllOfSubresourceUrisTests.cs new file mode 100644 index 00000000..700dcba6 --- /dev/null +++ b/src/freeclimb.Test/Model/CallResultAllOfSubresourceUrisTests.cs @@ -0,0 +1,104 @@ +/* + * FreeClimb API + * + * FreeClimb is a cloud-based application programming interface (API) that puts the power of the Vail platform in your hands. FreeClimb simplifies the process of creating applications that can use a full range of telephony features without requiring specialized or on-site telephony equipment. Using the FreeClimb REST API to write applications is easy! You have the option to use the language of your choice or hit the API directly. Your application can execute a command by issuing a RESTful request to the FreeClimb API. The base URL to send HTTP requests to the FreeClimb REST API is: /apiserver. FreeClimb authenticates and processes your request. + * + * The version of the OpenAPI document: 1.0.0 + * Contact: support@freeclimb.com + * Generated by: https://github.com/openapitools/openapi-generator.git + */ + + +using System; +using System.Collections; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Reflection; +using freeclimb.Client; +using freeclimb.Enums; +using freeclimb.Model; +using freeclimb.Test; +using Newtonsoft.Json; +using Xunit; + +namespace freeclimb.Test.Model +{ + /// + /// Class for testing CallResultAllOfSubresourceUris + /// + /// + /// This file is automatically generated by OpenAPI Generator (https://openapi-generator.tech). + /// Please update the test case below to test the model. + /// + + public class CallResultAllOfSubresourceUrisTests : IDisposable + { + private CallResultAllOfSubresourceUris instance; + + public CallResultAllOfSubresourceUrisTests() + { + instance = new CallResultAllOfSubresourceUris( + logs: (string)TestHelpers.getTestValue(typeof(string)), + recordings: (string)TestHelpers.getTestValue(typeof(string)) + ); + } + + public void Dispose() + { + // Cleanup when everything is done. + } + + /// + /// Test an instance of CallResultAllOfSubresourceUris + /// + [Fact] + public void CallResultAllOfSubresourceUrisInstanceTest() + { + Assert.IsType(instance); + } + + /// + /// Test the property 'Logs' + /// + [Fact] + public void LogsTest() + { + instance.Logs = "TEST_STRING"; + Assert.Equal("TEST_STRING", instance.Logs); + } + + /// + /// Test the property 'Recordings' + /// + [Fact] + public void RecordingsTest() + { + instance.Recordings = "TEST_STRING"; + Assert.Equal("TEST_STRING", instance.Recordings); + } + + /// + /// Test serialize a CallResultAllOfSubresourceUris to JSON string - all values are present + /// + [Fact] + public void CallResultAllOfSubresourceUrisSerializeToJSONTest() + { + string json = instance.ToJson(); + + Assert.Contains("logs", json); + + Assert.Contains("recordings", json); + } + + /// + /// Test serialize a CallResultAllOfSubresourceUris to JSON string - null values are stripped + /// + [Fact] + public void CallResultAllOfSubresourceUrisSerializeToJSONStripNullTest() + { + string json = instance.ToJson(); + Assert.DoesNotContain("null", json); + } + } +} diff --git a/src/freeclimb.Test/Model/CallResultTests.cs b/src/freeclimb.Test/Model/CallResultTests.cs index f7d8a5e2..b04cf13e 100644 --- a/src/freeclimb.Test/Model/CallResultTests.cs +++ b/src/freeclimb.Test/Model/CallResultTests.cs @@ -43,6 +43,8 @@ public CallResultTests() dateCreated: (string)TestHelpers.getTestValue(typeof(string)), dateUpdated: (string)TestHelpers.getTestValue(typeof(string)), revision: (int)TestHelpers.getTestValue(typeof(int)), + dateCreatedISO: (DateTime?)TestHelpers.getTestValue(typeof(DateTime?)), + dateUpdatedISO: (DateTime?)TestHelpers.getTestValue(typeof(DateTime?)), callId: (string)TestHelpers.getTestValue(typeof(string)), parentCallId: (string)TestHelpers.getTestValue(typeof(string)), accountId: (string)TestHelpers.getTestValue(typeof(string)), @@ -51,13 +53,20 @@ public CallResultTests() phoneNumberId: (string)TestHelpers.getTestValue(typeof(string)), status: (CallStatus)TestHelpers.getTestValue(typeof(CallStatus)), startTime: (string)TestHelpers.getTestValue(typeof(string)), + startTimeISO: (DateTime?)TestHelpers.getTestValue(typeof(DateTime?)), connectTime: (string)TestHelpers.getTestValue(typeof(string)), + connectTimeISO: (DateTime?)TestHelpers.getTestValue(typeof(DateTime?)), endTime: (string)TestHelpers.getTestValue(typeof(string)), + endTimeISO: (DateTime?)TestHelpers.getTestValue(typeof(DateTime?)), duration: (int?)TestHelpers.getTestValue(typeof(int?)), connectDuration: (int?)TestHelpers.getTestValue(typeof(int?)), + audioStreamDuration: (int?)TestHelpers.getTestValue(typeof(int?)), direction: (CallDirection)TestHelpers.getTestValue(typeof(CallDirection)), answeredBy: (AnsweredBy)TestHelpers.getTestValue(typeof(AnsweredBy)), - subresourceUris: (Object)TestHelpers.getTestValue(typeof(Object)), + callerName: (string)TestHelpers.getTestValue(typeof(string)), + webRTC: (bool?)TestHelpers.getTestValue(typeof(bool?)), + subresourceUris: (CallResultAllOfSubresourceUris) + TestHelpers.getTestValue(typeof(CallResultAllOfSubresourceUris)), applicationId: (string)TestHelpers.getTestValue(typeof(string)) ); } @@ -116,6 +125,26 @@ public void RevisionTest() Assert.Equal(1, (int)instance.Revision); } + /// + /// Test the property 'DateCreatedISO' + /// + [Fact] + public void DateCreatedISOTest() + { + instance.DateCreatedISO = DateTime.Parse("2022-07-05T15:17:05+00:00"); + Assert.Equal(DateTime.Parse("2022-07-05T15:17:05+00:00"), instance.DateCreatedISO); + } + + /// + /// Test the property 'DateUpdatedISO' + /// + [Fact] + public void DateUpdatedISOTest() + { + instance.DateUpdatedISO = DateTime.Parse("2022-07-05T15:17:05+00:00"); + Assert.Equal(DateTime.Parse("2022-07-05T15:17:05+00:00"), instance.DateUpdatedISO); + } + /// /// Test the property 'CallId' /// @@ -210,6 +239,16 @@ public void StartTimeTest() Assert.Equal("TEST_STRING", instance.StartTime); } + /// + /// Test the property 'StartTimeISO' + /// + [Fact] + public void StartTimeISOTest() + { + instance.StartTimeISO = DateTime.Parse("2022-07-05T15:17:05+00:00"); + Assert.Equal(DateTime.Parse("2022-07-05T15:17:05+00:00"), instance.StartTimeISO); + } + /// /// Test the property 'ConnectTime' /// @@ -220,6 +259,16 @@ public void ConnectTimeTest() Assert.Equal("TEST_STRING", instance.ConnectTime); } + /// + /// Test the property 'ConnectTimeISO' + /// + [Fact] + public void ConnectTimeISOTest() + { + instance.ConnectTimeISO = DateTime.Parse("2022-07-05T15:17:05+00:00"); + Assert.Equal(DateTime.Parse("2022-07-05T15:17:05+00:00"), instance.ConnectTimeISO); + } + /// /// Test the property 'EndTime' /// @@ -230,6 +279,16 @@ public void EndTimeTest() Assert.Equal("TEST_STRING", instance.EndTime); } + /// + /// Test the property 'EndTimeISO' + /// + [Fact] + public void EndTimeISOTest() + { + instance.EndTimeISO = DateTime.Parse("2022-07-05T15:17:05+00:00"); + Assert.Equal(DateTime.Parse("2022-07-05T15:17:05+00:00"), instance.EndTimeISO); + } + /// /// Test the property 'Duration' /// @@ -250,6 +309,16 @@ public void ConnectDurationTest() Assert.Equal(1, (int)instance.ConnectDuration); } + /// + /// Test the property 'AudioStreamDuration' + /// + [Fact] + public void AudioStreamDurationTest() + { + instance.AudioStreamDuration = 1; + Assert.Equal(1, (int)instance.AudioStreamDuration); + } + /// /// Test the property 'Direction' /// @@ -276,13 +345,34 @@ public void AnsweredByTest() Assert.Equal(AnsweredBy.MACHINE, instance.AnsweredBy); } + /// + /// Test the property 'CallerName' + /// + [Fact] + public void CallerNameTest() + { + instance.CallerName = "TEST_STRING"; + Assert.Equal("TEST_STRING", instance.CallerName); + } + + /// + /// Test the property 'WebRTC' + /// + [Fact] + public void WebRTCTest() + { + instance.WebRTC = false; + Assert.False(instance.WebRTC); + } + /// /// Test the property 'SubresourceUris' /// [Fact] public void SubresourceUrisTest() { - Object testObject = (Object)TestHelpers.getTestValue(typeof(Object)); + CallResultAllOfSubresourceUris testObject = (CallResultAllOfSubresourceUris) + TestHelpers.getTestValue(typeof(CallResultAllOfSubresourceUris)); instance.SubresourceUris = testObject; Assert.Equal(testObject, instance.SubresourceUris); } @@ -313,6 +403,10 @@ public void CallResultSerializeToJSONTest() Assert.Contains("revision", json); + Assert.Contains("dateCreatedISO", json); + + Assert.Contains("dateUpdatedISO", json); + Assert.Contains("callId", json); Assert.Contains("parentCallId", json); @@ -329,18 +423,30 @@ public void CallResultSerializeToJSONTest() Assert.Contains("startTime", json); + Assert.Contains("startTimeISO", json); + Assert.Contains("connectTime", json); + Assert.Contains("connectTimeISO", json); + Assert.Contains("endTime", json); + Assert.Contains("endTimeISO", json); + Assert.Contains("duration", json); Assert.Contains("connectDuration", json); + Assert.Contains("audioStreamDuration", json); + Assert.Contains("direction", json); Assert.Contains("answeredBy", json); + Assert.Contains("callerName", json); + + Assert.Contains("webRTC", json); + Assert.Contains("subresourceUris", json); Assert.Contains("applicationId", json); @@ -352,6 +458,10 @@ public void CallResultSerializeToJSONTest() [Fact] public void CallResultSerializeToJSONStripNullTest() { + instance.DateCreatedISO = null; + + instance.DateUpdatedISO = null; + instance.CallId = null; instance.ParentCallId = null; @@ -368,18 +478,30 @@ public void CallResultSerializeToJSONStripNullTest() instance.StartTime = null; + instance.StartTimeISO = null; + instance.ConnectTime = null; + instance.ConnectTimeISO = null; + instance.EndTime = null; + instance.EndTimeISO = null; + instance.Duration = null; instance.ConnectDuration = null; + instance.AudioStreamDuration = null; + instance.Direction = null; instance.AnsweredBy = null; + instance.CallerName = null; + + instance.WebRTC = null; + instance.SubresourceUris = null; instance.ApplicationId = null; diff --git a/src/freeclimb.Test/Model/IncomingNumberResultTests.cs b/src/freeclimb.Test/Model/IncomingNumberResultTests.cs index 0d2fbce5..43c2cb42 100644 --- a/src/freeclimb.Test/Model/IncomingNumberResultTests.cs +++ b/src/freeclimb.Test/Model/IncomingNumberResultTests.cs @@ -286,6 +286,8 @@ public void IncomingNumberResultSerializeToJSONStripNullTest() instance.Offnet = null; + instance.Tfn = null; + string json = instance.ToJson(); Assert.DoesNotContain("null", json); } diff --git a/src/freeclimb.Test/Model/MessageResultTests.cs b/src/freeclimb.Test/Model/MessageResultTests.cs index cfbfb17a..99e492fd 100644 --- a/src/freeclimb.Test/Model/MessageResultTests.cs +++ b/src/freeclimb.Test/Model/MessageResultTests.cs @@ -364,6 +364,8 @@ public void MessageResultSerializeToJSONStripNullTest() instance.MediaUrls = null; + instance.Tfn = null; + instance.PhoneNumberId = null; instance.ApplicationId = null; diff --git a/src/freeclimb.Test/Model/QueueResultTests.cs b/src/freeclimb.Test/Model/QueueResultTests.cs index 1032ce84..a0d49ae8 100644 --- a/src/freeclimb.Test/Model/QueueResultTests.cs +++ b/src/freeclimb.Test/Model/QueueResultTests.cs @@ -49,6 +49,7 @@ public QueueResultTests() maxSize: (int?)TestHelpers.getTestValue(typeof(int?)), currentSize: (int?)TestHelpers.getTestValue(typeof(int?)), averageQueueRemovalTime: (int?)TestHelpers.getTestValue(typeof(int?)), + averageWaitTime: (int?)TestHelpers.getTestValue(typeof(int?)), subresourceUris: (Object)TestHelpers.getTestValue(typeof(Object)) ); } @@ -167,6 +168,16 @@ public void AverageQueueRemovalTimeTest() Assert.Equal(1, (int)instance.AverageQueueRemovalTime); } + /// + /// Test the property 'AverageWaitTime' + /// + [Fact] + public void AverageWaitTimeTest() + { + instance.AverageWaitTime = 1; + Assert.Equal(1, (int)instance.AverageWaitTime); + } + /// /// Test the property 'SubresourceUris' /// @@ -206,6 +217,8 @@ public void QueueResultSerializeToJSONTest() Assert.Contains("averageQueueRemovalTime", json); + Assert.Contains("averageWaitTime", json); + Assert.Contains("subresourceUris", json); } @@ -227,6 +240,8 @@ public void QueueResultSerializeToJSONStripNullTest() instance.AverageQueueRemovalTime = null; + instance.AverageWaitTime = null; + instance.SubresourceUris = null; string json = instance.ToJson(); diff --git a/src/freeclimb.Test/Model/WebhookTests.cs b/src/freeclimb.Test/Model/WebhookTests.cs index 7757fdc7..b8eda282 100644 --- a/src/freeclimb.Test/Model/WebhookTests.cs +++ b/src/freeclimb.Test/Model/WebhookTests.cs @@ -79,6 +79,17 @@ public void AddToQueueNotificationWebhookDeserializeFromWebhookTest() ); } + /// + /// Test deserialize a AudioStreamWebhook from type Webhook + /// + [Fact] + public void AudioStreamWebhookDeserializeFromWebhookTest() + { + Assert.IsType( + JsonConvert.DeserializeObject(new AudioStreamWebhook().ToJson()) + ); + } + /// /// Test deserialize a CallControlWebhook from type Webhook /// diff --git a/src/freeclimb.Test/TestHelpers.cs b/src/freeclimb.Test/TestHelpers.cs index 32306013..3232132a 100644 --- a/src/freeclimb.Test/TestHelpers.cs +++ b/src/freeclimb.Test/TestHelpers.cs @@ -361,6 +361,10 @@ public static object getTestValue(Type type) { return TTSEngineNameValueConverter.FromString("freeclimb.standard"); } + if (type == typeof(CallResultAllOfSubresourceUris)) + { + return new CallResultAllOfSubresourceUris(null, null); + } throw new ArgumentException("Provided type has no test value", type.ToString()); } diff --git a/src/freeclimb/Api/DefaultApi.cs b/src/freeclimb/Api/DefaultApi.cs index ec1e9520..20d3a9cb 100644 --- a/src/freeclimb/Api/DefaultApi.cs +++ b/src/freeclimb/Api/DefaultApi.cs @@ -1039,9 +1039,16 @@ ApiResponse ListAvailableNumbersWithHttpInfo( /// Thrown when fails to make API call /// String that uniquely identifies this call resource. /// Only show recordings created on the specified date, in the form *YYYY-MM-DD*. (optional) + /// Only show Recordings created at or after this time, given as YYYY-MM-DD hh:mm:ss. (optional) + /// Only show Recordings created at or before this time, given as YYYY-MM-DD hh:mm:ss. (optional) /// RecordingList - RecordingList ListCallRecordings(string callId, string? dateCreated = default(string?)); + RecordingList ListCallRecordings( + string callId, + string? dateCreated = default(string?), + string? startTime = default(string?), + string? endTime = default(string?) + ); /// /// List Call Recordings @@ -1052,17 +1059,22 @@ ApiResponse ListAvailableNumbersWithHttpInfo( /// Thrown when fails to make API call /// String that uniquely identifies this call resource. /// Only show recordings created on the specified date, in the form *YYYY-MM-DD*. (optional) + /// Only show Recordings created at or after this time, given as YYYY-MM-DD hh:mm:ss. (optional) + /// Only show Recordings created at or before this time, given as YYYY-MM-DD hh:mm:ss. (optional) /// ApiResponse of RecordingList ApiResponse ListCallRecordingsWithHttpInfo( string callId, - string? dateCreated = default(string?) + string? dateCreated = default(string?), + string? startTime = default(string?), + string? endTime = default(string?) ); /// /// List Calls /// /// Thrown when fails to make API call + /// If usedAudioStream is set to true then all calls that have a audioStreamDuration > 0 will be returned (optional, default to false) /// If active is set to true then all calls of the nature queued, ringing, inProgress are returned in the query. (optional, default to false) /// Only show Calls to this phone number. (optional) /// Only show Calls from this phone number. (optional) @@ -1073,9 +1085,11 @@ ApiResponse ListCallRecordingsWithHttpInfo( /// Only show calls belonging to the given applicationId. This parameter can be repeated to return calls from multiple Applications. (optional) /// The minimum riskScore that should be included in the list. (optional) /// The maximum riskScore that should be included in the list. (optional) + /// Only show Calls that were originated via WebRTC. (optional, default to false) /// CallList CallList ListCalls( + bool? usedAudioStream = default(bool?), bool? active = default(bool?), string? to = default(string?), string? from = default(string?), @@ -1085,7 +1099,8 @@ CallList ListCalls( string? parentCallId = default(string?), List? applicationId = default(List?), int? riskScoreMin = default(int?), - int? riskScoreMax = default(int?) + int? riskScoreMax = default(int?), + bool? webRTC = default(bool?) ); /// @@ -1095,6 +1110,7 @@ CallList ListCalls( /// /// /// Thrown when fails to make API call + /// If usedAudioStream is set to true then all calls that have a audioStreamDuration > 0 will be returned (optional, default to false) /// If active is set to true then all calls of the nature queued, ringing, inProgress are returned in the query. (optional, default to false) /// Only show Calls to this phone number. (optional) /// Only show Calls from this phone number. (optional) @@ -1105,9 +1121,11 @@ CallList ListCalls( /// Only show calls belonging to the given applicationId. This parameter can be repeated to return calls from multiple Applications. (optional) /// The minimum riskScore that should be included in the list. (optional) /// The maximum riskScore that should be included in the list. (optional) + /// Only show Calls that were originated via WebRTC. (optional, default to false) /// ApiResponse of CallList ApiResponse ListCallsWithHttpInfo( + bool? usedAudioStream = default(bool?), bool? active = default(bool?), string? to = default(string?), string? from = default(string?), @@ -1117,7 +1135,8 @@ ApiResponse ListCallsWithHttpInfo( string? parentCallId = default(string?), List? applicationId = default(List?), int? riskScoreMin = default(int?), - int? riskScoreMax = default(int?) + int? riskScoreMax = default(int?), + bool? webRTC = default(bool?) ); /// @@ -1127,12 +1146,16 @@ ApiResponse ListCallsWithHttpInfo( /// Show only Recordings made during the conference with this ID. /// Show only Recordings made during the Call with this ID. (optional) /// Only show Recordings created on this date, formatted as *YYYY-MM-DD*. (optional) + /// Only show Recordings created at or after this time, given as YYYY-MM-DD hh:mm:ss. (optional) + /// Only show Recordings created at or before this time, given as YYYY-MM-DD hh:mm:ss. (optional) /// RecordingList RecordingList ListConferenceRecordings( string conferenceId, string? callId = default(string?), - string? dateCreated = default(string?) + string? dateCreated = default(string?), + string? startTime = default(string?), + string? endTime = default(string?) ); /// @@ -1145,12 +1168,16 @@ RecordingList ListConferenceRecordings( /// Show only Recordings made during the conference with this ID. /// Show only Recordings made during the Call with this ID. (optional) /// Only show Recordings created on this date, formatted as *YYYY-MM-DD*. (optional) + /// Only show Recordings created at or after this time, given as YYYY-MM-DD hh:mm:ss. (optional) + /// Only show Recordings created at or before this time, given as YYYY-MM-DD hh:mm:ss. (optional) /// ApiResponse of RecordingList ApiResponse ListConferenceRecordingsWithHttpInfo( string conferenceId, string? callId = default(string?), - string? dateCreated = default(string?) + string? dateCreated = default(string?), + string? startTime = default(string?), + string? endTime = default(string?) ); /// @@ -1361,12 +1388,16 @@ ApiResponse ListParticipantsWithHttpInfo( /// Show only Recordings made during the Call with this ID. (optional) /// Show only Recordings made during the conference with this ID. (optional) /// Only show Recordings created on this date, formatted as *YYYY-MM-DD*. (optional) + /// Only show Recordings created at or after this time, given as YYYY-MM-DD hh:mm:ss. (optional) + /// Only show Recordings created at or before this time, given as YYYY-MM-DD hh:mm:ss. (optional) /// RecordingList RecordingList ListRecordings( string? callId = default(string?), string? conferenceId = default(string?), - string? dateCreated = default(string?) + string? dateCreated = default(string?), + string? startTime = default(string?), + string? endTime = default(string?) ); /// @@ -1379,12 +1410,16 @@ RecordingList ListRecordings( /// Show only Recordings made during the Call with this ID. (optional) /// Show only Recordings made during the conference with this ID. (optional) /// Only show Recordings created on this date, formatted as *YYYY-MM-DD*. (optional) + /// Only show Recordings created at or after this time, given as YYYY-MM-DD hh:mm:ss. (optional) + /// Only show Recordings created at or before this time, given as YYYY-MM-DD hh:mm:ss. (optional) /// ApiResponse of RecordingList ApiResponse ListRecordingsWithHttpInfo( string? callId = default(string?), string? conferenceId = default(string?), - string? dateCreated = default(string?) + string? dateCreated = default(string?), + string? startTime = default(string?), + string? endTime = default(string?) ); /// @@ -6935,15 +6970,19 @@ public freeclimb.Client.ApiResponse ListCallLogsWithHttpInfo(string cal /// Thrown when fails to make API call /// String that uniquely identifies this call resource. /// Only show recordings created on the specified date, in the form *YYYY-MM-DD*. (optional) + /// Only show Recordings created at or after this time, given as YYYY-MM-DD hh:mm:ss. (optional) + /// Only show Recordings created at or before this time, given as YYYY-MM-DD hh:mm:ss. (optional) /// RecordingList public RecordingList ListCallRecordings( string callId, - string? dateCreated = default(string?) + string? dateCreated = default(string?), + string? startTime = default(string?), + string? endTime = default(string?) ) { freeclimb.Client.ApiResponse localVarResponse = - ListCallRecordingsWithHttpInfo(callId, dateCreated); + ListCallRecordingsWithHttpInfo(callId, dateCreated, startTime, endTime); return localVarResponse.Data; } @@ -6953,11 +6992,15 @@ public RecordingList ListCallRecordings( /// Thrown when fails to make API call /// String that uniquely identifies this call resource. /// Only show recordings created on the specified date, in the form *YYYY-MM-DD*. (optional) + /// Only show Recordings created at or after this time, given as YYYY-MM-DD hh:mm:ss. (optional) + /// Only show Recordings created at or before this time, given as YYYY-MM-DD hh:mm:ss. (optional) /// ApiResponse of RecordingList public freeclimb.Client.ApiResponse ListCallRecordingsWithHttpInfo( string callId, - string? dateCreated = default(string?) + string? dateCreated = default(string?), + string? startTime = default(string?), + string? endTime = default(string?) ) { // verify the required parameter 'accountId' is set @@ -7014,6 +7057,18 @@ public freeclimb.Client.ApiResponse ListCallRecordingsWithHttpInf freeclimb.Client.ClientUtils.ParameterToMultiMap("", "dateCreated", dateCreated) ); } + if (startTime != null) + { + localVarRequestOptions.QueryParameters.Add( + freeclimb.Client.ClientUtils.ParameterToMultiMap("", "startTime", startTime) + ); + } + if (endTime != null) + { + localVarRequestOptions.QueryParameters.Add( + freeclimb.Client.ClientUtils.ParameterToMultiMap("", "endTime", endTime) + ); + } localVarRequestOptions.Operation = "DefaultApi.ListCallRecordings"; @@ -7059,6 +7114,7 @@ public freeclimb.Client.ApiResponse ListCallRecordingsWithHttpInf /// List Calls /// /// Thrown when fails to make API call + /// If usedAudioStream is set to true then all calls that have a audioStreamDuration > 0 will be returned (optional, default to false) /// If active is set to true then all calls of the nature queued, ringing, inProgress are returned in the query. (optional, default to false) /// Only show Calls to this phone number. (optional) /// Only show Calls from this phone number. (optional) @@ -7069,9 +7125,11 @@ public freeclimb.Client.ApiResponse ListCallRecordingsWithHttpInf /// Only show calls belonging to the given applicationId. This parameter can be repeated to return calls from multiple Applications. (optional) /// The minimum riskScore that should be included in the list. (optional) /// The maximum riskScore that should be included in the list. (optional) + /// Only show Calls that were originated via WebRTC. (optional, default to false) /// CallList public CallList ListCalls( + bool? usedAudioStream = default(bool?), bool? active = default(bool?), string? to = default(string?), string? from = default(string?), @@ -7081,10 +7139,12 @@ public CallList ListCalls( string? parentCallId = default(string?), List? applicationId = default(List?), int? riskScoreMin = default(int?), - int? riskScoreMax = default(int?) + int? riskScoreMax = default(int?), + bool? webRTC = default(bool?) ) { freeclimb.Client.ApiResponse localVarResponse = ListCallsWithHttpInfo( + usedAudioStream, active, to, from, @@ -7094,7 +7154,8 @@ public CallList ListCalls( parentCallId, applicationId, riskScoreMin, - riskScoreMax + riskScoreMax, + webRTC ); return localVarResponse.Data; } @@ -7103,6 +7164,7 @@ public CallList ListCalls( /// List Calls /// /// Thrown when fails to make API call + /// If usedAudioStream is set to true then all calls that have a audioStreamDuration > 0 will be returned (optional, default to false) /// If active is set to true then all calls of the nature queued, ringing, inProgress are returned in the query. (optional, default to false) /// Only show Calls to this phone number. (optional) /// Only show Calls from this phone number. (optional) @@ -7113,9 +7175,11 @@ public CallList ListCalls( /// Only show calls belonging to the given applicationId. This parameter can be repeated to return calls from multiple Applications. (optional) /// The minimum riskScore that should be included in the list. (optional) /// The maximum riskScore that should be included in the list. (optional) + /// Only show Calls that were originated via WebRTC. (optional, default to false) /// ApiResponse of CallList public freeclimb.Client.ApiResponse ListCallsWithHttpInfo( + bool? usedAudioStream = default(bool?), bool? active = default(bool?), string? to = default(string?), string? from = default(string?), @@ -7125,7 +7189,8 @@ public freeclimb.Client.ApiResponse ListCallsWithHttpInfo( string? parentCallId = default(string?), List? applicationId = default(List?), int? riskScoreMin = default(int?), - int? riskScoreMax = default(int?) + int? riskScoreMax = default(int?), + bool? webRTC = default(bool?) ) { // verify the required parameter 'accountId' is set @@ -7163,6 +7228,16 @@ public freeclimb.Client.ApiResponse ListCallsWithHttpInfo( "accountId", freeclimb.Client.ClientUtils.ParameterToString(accountId) ); // path parameter + if (usedAudioStream != null) + { + localVarRequestOptions.QueryParameters.Add( + freeclimb.Client.ClientUtils.ParameterToMultiMap( + "", + "usedAudioStream", + usedAudioStream + ) + ); + } if (active != null) { localVarRequestOptions.QueryParameters.Add( @@ -7239,6 +7314,12 @@ public freeclimb.Client.ApiResponse ListCallsWithHttpInfo( ) ); } + if (webRTC != null) + { + localVarRequestOptions.QueryParameters.Add( + freeclimb.Client.ClientUtils.ParameterToMultiMap("", "webRTC", webRTC) + ); + } localVarRequestOptions.Operation = "DefaultApi.ListCalls"; @@ -7284,16 +7365,26 @@ public freeclimb.Client.ApiResponse ListCallsWithHttpInfo( /// Show only Recordings made during the conference with this ID. /// Show only Recordings made during the Call with this ID. (optional) /// Only show Recordings created on this date, formatted as *YYYY-MM-DD*. (optional) + /// Only show Recordings created at or after this time, given as YYYY-MM-DD hh:mm:ss. (optional) + /// Only show Recordings created at or before this time, given as YYYY-MM-DD hh:mm:ss. (optional) /// RecordingList public RecordingList ListConferenceRecordings( string conferenceId, string? callId = default(string?), - string? dateCreated = default(string?) + string? dateCreated = default(string?), + string? startTime = default(string?), + string? endTime = default(string?) ) { freeclimb.Client.ApiResponse localVarResponse = - ListConferenceRecordingsWithHttpInfo(conferenceId, callId, dateCreated); + ListConferenceRecordingsWithHttpInfo( + conferenceId, + callId, + dateCreated, + startTime, + endTime + ); return localVarResponse.Data; } @@ -7304,12 +7395,16 @@ public RecordingList ListConferenceRecordings( /// Show only Recordings made during the conference with this ID. /// Show only Recordings made during the Call with this ID. (optional) /// Only show Recordings created on this date, formatted as *YYYY-MM-DD*. (optional) + /// Only show Recordings created at or after this time, given as YYYY-MM-DD hh:mm:ss. (optional) + /// Only show Recordings created at or before this time, given as YYYY-MM-DD hh:mm:ss. (optional) /// ApiResponse of RecordingList public freeclimb.Client.ApiResponse ListConferenceRecordingsWithHttpInfo( string conferenceId, string? callId = default(string?), - string? dateCreated = default(string?) + string? dateCreated = default(string?), + string? startTime = default(string?), + string? endTime = default(string?) ) { // verify the required parameter 'accountId' is set @@ -7372,6 +7467,18 @@ public freeclimb.Client.ApiResponse ListConferenceRecordingsWithH freeclimb.Client.ClientUtils.ParameterToMultiMap("", "dateCreated", dateCreated) ); } + if (startTime != null) + { + localVarRequestOptions.QueryParameters.Add( + freeclimb.Client.ClientUtils.ParameterToMultiMap("", "startTime", startTime) + ); + } + if (endTime != null) + { + localVarRequestOptions.QueryParameters.Add( + freeclimb.Client.ClientUtils.ParameterToMultiMap("", "endTime", endTime) + ); + } localVarRequestOptions.Operation = "DefaultApi.ListConferenceRecordings"; @@ -8216,16 +8323,20 @@ public freeclimb.Client.ApiResponse ListParticipantsW /// Show only Recordings made during the Call with this ID. (optional) /// Show only Recordings made during the conference with this ID. (optional) /// Only show Recordings created on this date, formatted as *YYYY-MM-DD*. (optional) + /// Only show Recordings created at or after this time, given as YYYY-MM-DD hh:mm:ss. (optional) + /// Only show Recordings created at or before this time, given as YYYY-MM-DD hh:mm:ss. (optional) /// RecordingList public RecordingList ListRecordings( string? callId = default(string?), string? conferenceId = default(string?), - string? dateCreated = default(string?) + string? dateCreated = default(string?), + string? startTime = default(string?), + string? endTime = default(string?) ) { freeclimb.Client.ApiResponse localVarResponse = - ListRecordingsWithHttpInfo(callId, conferenceId, dateCreated); + ListRecordingsWithHttpInfo(callId, conferenceId, dateCreated, startTime, endTime); return localVarResponse.Data; } @@ -8236,12 +8347,16 @@ public RecordingList ListRecordings( /// Show only Recordings made during the Call with this ID. (optional) /// Show only Recordings made during the conference with this ID. (optional) /// Only show Recordings created on this date, formatted as *YYYY-MM-DD*. (optional) + /// Only show Recordings created at or after this time, given as YYYY-MM-DD hh:mm:ss. (optional) + /// Only show Recordings created at or before this time, given as YYYY-MM-DD hh:mm:ss. (optional) /// ApiResponse of RecordingList public freeclimb.Client.ApiResponse ListRecordingsWithHttpInfo( string? callId = default(string?), string? conferenceId = default(string?), - string? dateCreated = default(string?) + string? dateCreated = default(string?), + string? startTime = default(string?), + string? endTime = default(string?) ) { // verify the required parameter 'accountId' is set @@ -8301,6 +8416,18 @@ public freeclimb.Client.ApiResponse ListRecordingsWithHttpInfo( freeclimb.Client.ClientUtils.ParameterToMultiMap("", "dateCreated", dateCreated) ); } + if (startTime != null) + { + localVarRequestOptions.QueryParameters.Add( + freeclimb.Client.ClientUtils.ParameterToMultiMap("", "startTime", startTime) + ); + } + if (endTime != null) + { + localVarRequestOptions.QueryParameters.Add( + freeclimb.Client.ClientUtils.ParameterToMultiMap("", "endTime", endTime) + ); + } localVarRequestOptions.Operation = "DefaultApi.ListRecordings"; diff --git a/src/freeclimb/Client/Configuration.cs b/src/freeclimb/Client/Configuration.cs index d261eb89..a4a6489b 100644 --- a/src/freeclimb/Client/Configuration.cs +++ b/src/freeclimb/Client/Configuration.cs @@ -34,7 +34,7 @@ public class Configuration : IReadableConfiguration /// Version of the package. /// /// Version of the package. - public const string Version = "5.3.1"; + public const string Version = "5.4.0"; /// /// Identifier for ISO 8601 DateTime Format @@ -130,7 +130,7 @@ private IReadOnlyDictionary< public Configuration() { Proxy = null; - UserAgent = WebUtility.UrlEncode("OpenAPI-Generator/5.3.1/csharp"); + UserAgent = WebUtility.UrlEncode("OpenAPI-Generator/5.4.0/csharp"); BasePath = "https://www.freeclimb.com/apiserver"; DefaultHeaders = new ConcurrentDictionary(); ApiKey = new ConcurrentDictionary(); @@ -582,7 +582,7 @@ public static string ToDebugReport() report += " OS: " + System.Environment.OSVersion + "\n"; report += " .NET Framework Version: " + System.Environment.Version + "\n"; report += " Version of the API: 1.0.0\n"; - report += " SDK Package Version: 5.3.1\n"; + report += " SDK Package Version: 5.4.0\n"; return report; } diff --git a/src/freeclimb/Enums/RequestType.cs b/src/freeclimb/Enums/RequestType.cs index 9a0d2387..a23f6a9d 100644 --- a/src/freeclimb/Enums/RequestType.cs +++ b/src/freeclimb/Enums/RequestType.cs @@ -111,65 +111,71 @@ public enum RequestType [EnumMember(Value = "addToQueueNotification")] ADD_TO_QUEUE_NOTIFICATION = 13, + /// + /// Enum AUDIO_STREAM for value: audioStream + /// + [EnumMember(Value = "audioStream")] + AUDIO_STREAM = 14, + /// /// Enum REMOVE_FROM_QUEUE_NOTIFICATION for value: removeFromQueueNotification /// [EnumMember(Value = "removeFromQueueNotification")] - REMOVE_FROM_QUEUE_NOTIFICATION = 14, + REMOVE_FROM_QUEUE_NOTIFICATION = 15, /// /// Enum CALL_STATUS for value: callStatus /// [EnumMember(Value = "callStatus")] - CALL_STATUS = 15, + CALL_STATUS = 16, /// /// Enum CREATE_CONFERENCE for value: createConference /// [EnumMember(Value = "createConference")] - CREATE_CONFERENCE = 16, + CREATE_CONFERENCE = 17, /// /// Enum CONFERENCE_STATUS for value: conferenceStatus /// [EnumMember(Value = "conferenceStatus")] - CONFERENCE_STATUS = 17, + CONFERENCE_STATUS = 18, /// /// Enum LEAVE_CONFERENCE for value: leaveConference /// [EnumMember(Value = "leaveConference")] - LEAVE_CONFERENCE = 18, + LEAVE_CONFERENCE = 19, /// /// Enum ADD_TO_CONFERENCE_NOTIFICATION for value: addToConferenceNotification /// [EnumMember(Value = "addToConferenceNotification")] - ADD_TO_CONFERENCE_NOTIFICATION = 19, + ADD_TO_CONFERENCE_NOTIFICATION = 20, /// /// Enum CONFERENCE_RECORDING_STATUS for value: conferenceRecordingStatus /// [EnumMember(Value = "conferenceRecordingStatus")] - CONFERENCE_RECORDING_STATUS = 20, + CONFERENCE_RECORDING_STATUS = 21, /// /// Enum CONFERENCE_CALL_CONTROL for value: conferenceCallControl /// [EnumMember(Value = "conferenceCallControl")] - CONFERENCE_CALL_CONTROL = 21, + CONFERENCE_CALL_CONTROL = 22, /// /// Enum MESSAGE_DELIVERY for value: messageDelivery /// [EnumMember(Value = "messageDelivery")] - MESSAGE_DELIVERY = 22, + MESSAGE_DELIVERY = 23, /// /// Enum MESSAGE_STATUS for value: messageStatus /// [EnumMember(Value = "messageStatus")] - MESSAGE_STATUS = 23, + MESSAGE_STATUS = 24, } /// @@ -223,6 +229,9 @@ public static RequestType FromString(string value) if (value.Equals("addToQueueNotification")) return RequestType.ADD_TO_QUEUE_NOTIFICATION; + if (value.Equals("audioStream")) + return RequestType.AUDIO_STREAM; + if (value.Equals("removeFromQueueNotification")) return RequestType.REMOVE_FROM_QUEUE_NOTIFICATION; @@ -304,6 +313,9 @@ public static RequestType FromString(string value) if (value.Equals("addToQueueNotification")) return RequestType.ADD_TO_QUEUE_NOTIFICATION; + if (value.Equals("audioStream")) + return RequestType.AUDIO_STREAM; + if (value.Equals("removeFromQueueNotification")) return RequestType.REMOVE_FROM_QUEUE_NOTIFICATION; diff --git a/src/freeclimb/Model/AudioStream.cs b/src/freeclimb/Model/AudioStream.cs new file mode 100644 index 00000000..d3f24536 --- /dev/null +++ b/src/freeclimb/Model/AudioStream.cs @@ -0,0 +1,208 @@ +/* + * FreeClimb API + * + * FreeClimb is a cloud-based application programming interface (API) that puts the power of the Vail platform in your hands. FreeClimb simplifies the process of creating applications that can use a full range of telephony features without requiring specialized or on-site telephony equipment. Using the FreeClimb REST API to write applications is easy! You have the option to use the language of your choice or hit the API directly. Your application can execute a command by issuing a RESTful request to the FreeClimb API. The base URL to send HTTP requests to the FreeClimb REST API is: /apiserver. FreeClimb authenticates and processes your request. + * + * The version of the OpenAPI document: 1.0.0 + * Contact: support@freeclimb.com + * Generated by: https://github.com/openapitools/openapi-generator.git + */ + + +using System; +using System.Collections; +using System.Collections.Generic; +using System.Collections.ObjectModel; +using System.ComponentModel.DataAnnotations; +using System.IO; +using System.Linq; +using System.Runtime.Serialization; +using System.Text; +using System.Text.RegularExpressions; +using freeclimb.Enums; +using JsonSubTypes; +using Newtonsoft.Json; +using Newtonsoft.Json.Converters; +using Newtonsoft.Json.Linq; +using OpenAPIDateConverter = freeclimb.Client.OpenAPIDateConverter; + +namespace freeclimb.Model +{ + /// + /// The `AudioStream` command transfers control of the call to a gRPC session. Upon completion of the gRPC session, if the actionUrl is specified, control can be returned to percl usage or the call will simply be hung up if the actionUrl is not specified. + /// + [DataContract(Name = "AudioStream")] + [JsonConverter(typeof(JsonSubtypes), "Command")] + public partial class AudioStream : PerclCommand, IValidatableObject + { + /// + /// Initializes a new instance of the class. + /// + [JsonConstructorAttribute] + protected AudioStream() { } + + /// + /// Initializes a new instance of the class. + /// + /// The gRPC server location that will receive the grpc stream as a uri and must be port 80 or 443. (required). + /// A request is made to this URL when the gRPC session is concluded. The PerCL script returned in response to the actionUrl will be executed on the call.. + /// The type and sample rate of the audio being received over the channel must match the environmental sample rate.. + /// An arbitrary array of strings passed through FC to the GRPC server can be used to pass state or other information about the call.. + /// Enables audio redaction with full call recording while gRPC session is running and blocks logging of any DTMFs received by FreeClimb.. + /// Name of PerCL Command (this is automatically derived from mapping configuration and should not be manually supplied in any arguments) (default to "AudioStream"). + public AudioStream( + string location = default(string), + string actionUrl = default(string), + string contentType = default(string), + List metaData = default(List), + bool privacyMode = default(bool), + string command = @"AudioStream" + ) + : base(command) + { + // to ensure "location" is required (not null) + if (location == null) + { + throw new ArgumentNullException( + "location is a required property for AudioStream and cannot be null" + ); + } + this.Location = location; + + this.ActionUrl = actionUrl; + + this.ContentType = contentType; + + this.MetaData = metaData; + + this.PrivacyMode = privacyMode; + } + + /// + /// The gRPC server location that will receive the grpc stream as a uri and must be port 80 or 443. + /// + /// The gRPC server location that will receive the grpc stream as a uri and must be port 80 or 443. + [DataMember(Name = "location", IsRequired = true, EmitDefaultValue = true)] + public string Location { get; set; } + + /// + /// A request is made to this URL when the gRPC session is concluded. The PerCL script returned in response to the actionUrl will be executed on the call. + /// + /// A request is made to this URL when the gRPC session is concluded. The PerCL script returned in response to the actionUrl will be executed on the call. + [DataMember(Name = "actionUrl", EmitDefaultValue = false)] + public string ActionUrl { get; set; } + + /// + /// The type and sample rate of the audio being received over the channel must match the environmental sample rate. + /// + /// The type and sample rate of the audio being received over the channel must match the environmental sample rate. + [DataMember(Name = "contentType", EmitDefaultValue = false)] + public string ContentType { get; set; } + + /// + /// An arbitrary array of strings passed through FC to the GRPC server can be used to pass state or other information about the call. + /// + /// An arbitrary array of strings passed through FC to the GRPC server can be used to pass state or other information about the call. + [DataMember(Name = "metaData", EmitDefaultValue = false)] + public List MetaData { get; set; } + + /// + /// Enables audio redaction with full call recording while gRPC session is running and blocks logging of any DTMFs received by FreeClimb. + /// + /// Enables audio redaction with full call recording while gRPC session is running and blocks logging of any DTMFs received by FreeClimb. + [DataMember(Name = "privacyMode", EmitDefaultValue = true)] + public bool PrivacyMode { get; set; } + + /// + /// Returns the string presentation of the object + /// + /// String presentation of the object + public override string ToString() + { + StringBuilder sb = new StringBuilder(); + sb.Append("class AudioStream {\n"); + sb.Append(" ").Append(base.ToString().Replace("\n", "\n ")).Append("\n"); + sb.Append(" Location: ").Append(Location).Append("\n"); + sb.Append(" ActionUrl: ").Append(ActionUrl).Append("\n"); + sb.Append(" ContentType: ").Append(ContentType).Append("\n"); + sb.Append(" MetaData: ").Append(MetaData).Append("\n"); + sb.Append(" PrivacyMode: ").Append(PrivacyMode).Append("\n"); + sb.Append("}\n"); + return sb.ToString(); + } + + /// + /// Returns the JSON string presentation of the object + /// + /// JSON string presentation of the object + public override string ToJson() + { + JsonSerializerSettings settings = new JsonSerializerSettings + { + NullValueHandling = NullValueHandling.Ignore, + }; + return JsonConvert.SerializeObject(ToKvp(), settings); + } + + /// + /// Retrieve the KVP Dictionary for the AudioStream instance. + /// + /// KVP Dictionary + public override IDictionary ToKvp() + { + IDictionary props = new Dictionary(); + AddToDictionary(props, "location", Location); + AddToDictionary(props, "actionUrl", ActionUrl); + AddToDictionary(props, "contentType", ContentType); + List nestedMetaData = new List(); + if (MetaData != null) + { + nestedMetaData.Add(MetaData); + } + AddToDictionary(props, "metaData", nestedMetaData); + AddToDictionary(props, "privacyMode", PrivacyMode); + IDictionary command = new Dictionary(); + command.Add("AudioStream", props); + return command; + } + + private IDictionary AddToDictionary( + IDictionary dict, + string key, + object value + ) + { + if (value != null) + { + dict.Add(key, value); + } + return dict; + } + + /// + /// To validate all properties of the instance + /// + /// Validation context + /// Validation Result + IEnumerable IValidatableObject.Validate( + ValidationContext validationContext + ) + { + return this.BaseValidate(validationContext); + } + + /// + /// To validate all properties of the instance + /// + /// Validation context + /// Validation Result + protected IEnumerable BaseValidate(ValidationContext validationContext) + { + foreach (var x in base.BaseValidate(validationContext)) + { + yield return x; + } + yield break; + } + } +} diff --git a/src/freeclimb/Model/AudioStreamWebhook.cs b/src/freeclimb/Model/AudioStreamWebhook.cs new file mode 100644 index 00000000..d635e3f6 --- /dev/null +++ b/src/freeclimb/Model/AudioStreamWebhook.cs @@ -0,0 +1,256 @@ +/* + * FreeClimb API + * + * FreeClimb is a cloud-based application programming interface (API) that puts the power of the Vail platform in your hands. FreeClimb simplifies the process of creating applications that can use a full range of telephony features without requiring specialized or on-site telephony equipment. Using the FreeClimb REST API to write applications is easy! You have the option to use the language of your choice or hit the API directly. Your application can execute a command by issuing a RESTful request to the FreeClimb API. The base URL to send HTTP requests to the FreeClimb REST API is: /apiserver. FreeClimb authenticates and processes your request. + * + * The version of the OpenAPI document: 1.0.0 + * Contact: support@freeclimb.com + * Generated by: https://github.com/openapitools/openapi-generator.git + */ + + +using System; +using System.Collections; +using System.Collections.Generic; +using System.Collections.ObjectModel; +using System.ComponentModel.DataAnnotations; +using System.IO; +using System.Linq; +using System.Runtime.Serialization; +using System.Text; +using System.Text.RegularExpressions; +using freeclimb.Enums; +using JsonSubTypes; +using Newtonsoft.Json; +using Newtonsoft.Json.Converters; +using Newtonsoft.Json.Linq; +using Newtonsoft.Json.Serialization; +using OpenAPIDateConverter = freeclimb.Client.OpenAPIDateConverter; + +namespace freeclimb.Model +{ + /// + /// A gRPC session has ended for this Call its actionUrl is being invoked. A PerCL response is expected — unless the URL is invoked due to the participant hanging up. + /// + [DataContract(Name = "AudioStreamWebhook")] + [JsonConverter(typeof(JsonSubtypes), "RequestType")] + public partial class AudioStreamWebhook : Webhook, IValidatableObject + { + /// + /// Gets or Sets CallStatus + /// + [DataMember(Name = "callStatus", EmitDefaultValue = true)] + public CallStatus? CallStatus { get; set; } + + /// + /// Gets or Sets Direction + /// + [DataMember(Name = "direction", EmitDefaultValue = true)] + public CallDirection? Direction { get; set; } + + /// + /// Initializes a new instance of the class. + /// + /// Context or reason why this request is being made. Will be audioStream - gRPC session for this Call has ended and its actionUrl is being invoked. (default to "AudioStreamWebhook"). + /// Unique ID for this Call, generated by FreeClimb. This is the call leg which ended its gRPC session.. + /// Account ID associated with your account.. + /// Phone number of the party that initiated the Call (in E.164 format).. + /// Phone number provisioned to you and to which this Call is directed (in E.164 format).. + /// callStatus. + /// direction. + /// This is only populated if request pertains to a Conference. Otherwise, it is set to null.. + /// This is only populated if the request pertains to a Queue. Otherwise, it is set to null.. + public AudioStreamWebhook( + string requestType = @"AudioStreamWebhook", + string callId = default(string), + string accountId = default(string), + string from = default(string), + string to = default(string), + CallStatus? callStatus = default(CallStatus?), + CallDirection? direction = default(CallDirection?), + string conferenceId = default(string), + string queueId = default(string) + ) + : base() + { + base.RequestType = requestType; + + this.CallId = callId; + + this.AccountId = accountId; + + this.From = from; + + this.To = to; + + this.CallStatus = callStatus; + + this.Direction = direction; + + this.ConferenceId = conferenceId; + + this.QueueId = queueId; + } + + private static readonly JsonSerializerSettings _serializerSettings = + new JsonSerializerSettings + { + // OpenAPI generated types generally hide default constructors. + ConstructorHandling = ConstructorHandling.AllowNonPublicDefaultConstructor, + ContractResolver = new DefaultContractResolver + { + NamingStrategy = new CamelCaseNamingStrategy { OverrideSpecifiedNames = false }, + }, + }; + + /// + /// Deserializes json payload into instance AudioStreamWebhook + /// + /// + /// instanceof RemoveFromQueueNotificationWebhook + public static AudioStreamWebhook Deserialize(string jsonPayload) + { + return (AudioStreamWebhook) + JsonConvert.DeserializeObject( + jsonPayload, + typeof(AudioStreamWebhook), + _serializerSettings + ); + } + + /// + /// Unique ID for this Call, generated by FreeClimb. This is the call leg which ended its gRPC session. + /// + /// Unique ID for this Call, generated by FreeClimb. This is the call leg which ended its gRPC session. + [DataMember(Name = "callId", EmitDefaultValue = false)] + public string CallId { get; set; } + + /// + /// Account ID associated with your account. + /// + /// Account ID associated with your account. + [DataMember(Name = "accountId", EmitDefaultValue = false)] + public string AccountId { get; set; } + + /// + /// Phone number of the party that initiated the Call (in E.164 format). + /// + /// Phone number of the party that initiated the Call (in E.164 format). + [DataMember(Name = "from", EmitDefaultValue = false)] + public string From { get; set; } + + /// + /// Phone number provisioned to you and to which this Call is directed (in E.164 format). + /// + /// Phone number provisioned to you and to which this Call is directed (in E.164 format). + [DataMember(Name = "to", EmitDefaultValue = false)] + public string To { get; set; } + + /// + /// This is only populated if request pertains to a Conference. Otherwise, it is set to null. + /// + /// This is only populated if request pertains to a Conference. Otherwise, it is set to null. + [DataMember(Name = "conferenceId", EmitDefaultValue = true)] + public string ConferenceId { get; set; } + + /// + /// This is only populated if the request pertains to a Queue. Otherwise, it is set to null. + /// + /// This is only populated if the request pertains to a Queue. Otherwise, it is set to null. + [DataMember(Name = "queueId", EmitDefaultValue = true)] + public string QueueId { get; set; } + + /// + /// Returns the string presentation of the object + /// + /// String presentation of the object + public override string ToString() + { + StringBuilder sb = new StringBuilder(); + sb.Append("class AudioStreamWebhook {\n"); + sb.Append(" ").Append(base.ToString().Replace("\n", "\n ")).Append("\n"); + sb.Append(" RequestType: ").Append(RequestType).Append("\n"); + sb.Append(" CallId: ").Append(CallId).Append("\n"); + sb.Append(" AccountId: ").Append(AccountId).Append("\n"); + sb.Append(" From: ").Append(From).Append("\n"); + sb.Append(" To: ").Append(To).Append("\n"); + sb.Append(" CallStatus: ").Append(CallStatus).Append("\n"); + sb.Append(" Direction: ").Append(Direction).Append("\n"); + sb.Append(" ConferenceId: ").Append(ConferenceId).Append("\n"); + sb.Append(" QueueId: ").Append(QueueId).Append("\n"); + sb.Append("}\n"); + return sb.ToString(); + } + + /// + /// Returns the JSON string presentation of the object + /// + /// JSON string presentation of the object + public override string ToJson() + { + return Newtonsoft.Json.JsonConvert.SerializeObject( + this, + Newtonsoft.Json.Formatting.Indented, + new JsonSerializerSettings { NullValueHandling = NullValueHandling.Ignore } + ); + } + + /// + /// Retrieve the KVP Dictionary for the AudioStreamWebhook instance. + /// + /// KVP Dictionary + public override IDictionary ToKvp() + { + IDictionary props = new Dictionary(); + AddToDictionary(props, "requestType", RequestType); + AddToDictionary(props, "callId", CallId); + AddToDictionary(props, "accountId", AccountId); + AddToDictionary(props, "from", From); + AddToDictionary(props, "to", To); + AddToDictionary(props, "callStatus", CallStatus); + AddToDictionary(props, "direction", Direction); + AddToDictionary(props, "conferenceId", ConferenceId); + AddToDictionary(props, "queueId", QueueId); + return props; + } + + private IDictionary AddToDictionary( + IDictionary dict, + string key, + object value + ) + { + if (value != null) + { + dict.Add(key, value); + } + return dict; + } + + /// + /// To validate all properties of the instance + /// + /// Validation context + /// Validation Result + IEnumerable IValidatableObject.Validate( + ValidationContext validationContext + ) + { + return this.BaseValidate(validationContext); + } + + /// + /// To validate all properties of the instance + /// + /// Validation context + /// Validation Result + protected IEnumerable BaseValidate(ValidationContext validationContext) + { + foreach (var x in base.BaseValidate(validationContext)) + { + yield return x; + } + yield break; + } + } +} diff --git a/src/freeclimb/Model/AvailableNumber.cs b/src/freeclimb/Model/AvailableNumber.cs index 1d58ff70..95e2a9d3 100644 --- a/src/freeclimb/Model/AvailableNumber.cs +++ b/src/freeclimb/Model/AvailableNumber.cs @@ -39,12 +39,14 @@ public partial class AvailableNumber : IValidatableObject /// capabilities. /// The campaign ID generated by the campaign registry. /// The phone number, in E.164 format (+ country code and phone number: +18003608245).. + /// A nicely-formatted version of the phone number.. /// The state or province of this phone number.. /// The country of this phone number.. public AvailableNumber( Capabilities capabilities = default(Capabilities), string campaignId = default(string), string phoneNumber = default(string), + string alias = default(string), string region = default(string), string country = default(string) ) @@ -55,6 +57,8 @@ public AvailableNumber( this.PhoneNumber = phoneNumber; + this.Alias = alias; + this.Region = region; this.Country = country; @@ -80,6 +84,13 @@ public AvailableNumber( [DataMember(Name = "phoneNumber", EmitDefaultValue = true)] public string PhoneNumber { get; set; } + /// + /// A nicely-formatted version of the phone number. + /// + /// A nicely-formatted version of the phone number. + [DataMember(Name = "alias", EmitDefaultValue = true)] + public string Alias { get; set; } + /// /// The state or province of this phone number. /// @@ -105,6 +116,7 @@ public override string ToString() sb.Append(" Capabilities: ").Append(Capabilities).Append("\n"); sb.Append(" CampaignId: ").Append(CampaignId).Append("\n"); sb.Append(" PhoneNumber: ").Append(PhoneNumber).Append("\n"); + sb.Append(" Alias: ").Append(Alias).Append("\n"); sb.Append(" Region: ").Append(Region).Append("\n"); sb.Append(" Country: ").Append(Country).Append("\n"); sb.Append("}\n"); @@ -134,6 +146,7 @@ public virtual IDictionary ToKvp() AddToDictionary(props, "capabilities", Capabilities); AddToDictionary(props, "campaignId", CampaignId); AddToDictionary(props, "phoneNumber", PhoneNumber); + AddToDictionary(props, "alias", Alias); AddToDictionary(props, "region", Region); AddToDictionary(props, "country", Country); return props; diff --git a/src/freeclimb/Model/CallResult.cs b/src/freeclimb/Model/CallResult.cs index 2aa9b575..8df047d4 100644 --- a/src/freeclimb/Model/CallResult.cs +++ b/src/freeclimb/Model/CallResult.cs @@ -58,6 +58,8 @@ public partial class CallResult : IValidatableObject /// The date that this resource was created (GMT) in RFC 1123 format (e.g., Mon, 15 Jun 2009 20:45:30 GMT).. /// The date that this resource was last updated (GMT) in RFC 1123 format (e.g., Mon, 15 Jun 2009 20:45:30 GMT).. /// Revision count for the resource. This count is set to 1 on creation and is incremented every time it is updated.. + /// The date that this resource was created in ISO 8601 format (e.g., 2022-01-01T00:00:00.000Z).. + /// The date that this resource was last updated in ISO 8601 format (e.g., 2022-01-01T00:00:00.000Z).. /// String that uniquely identifies this Call resource.. /// ID of the Call that created this leg (child Call).. /// ID of the account that owns this Call.. @@ -66,19 +68,27 @@ public partial class CallResult : IValidatableObject /// If the Call was inbound, this is the ID of the IncomingPhoneNumber that received the Call (DNIS). If the Call was outbound, this is the ID of the phone number from which the Call was placed (ANI).. /// status. /// Start time of the Call (GMT) in RFC 1123 format (e.g., Mon, 15 Jun 2009 20:45:30 GMT). Empty if the Call has not yet been dialed.. + /// Start time of the Call in ISO 8601 format (e.g., 2022-01-01T00:00:00.000Z). Empty if the Call has not yet been dialed.. /// Time the Call was answered (GMT) in RFC 1123 format (e.g., Mon, 15 Jun 2009 20:45:30 GMT). Empty if the Call has not yet been dialed.. + /// Time the Call was answered in ISO 8601 format (e.g., 2022-01-01T00:00:00.000Z). Empty if the Call has not yet been dialed.. /// End time of the Call (GMT) in RFC 1123 format (e.g., Mon, 15 Jun 2009 20:45:30 GMT). Empty if the Call did not complete successfully.. + /// End time of the Call in ISO 8601 format (e.g., 2022-01-01T00:00:00.000Z). Empty if the Call did not complete successfully.. /// Total length of the Call in seconds. Measures time between startTime and endTime. This value is empty for busy, failed, unanswered or ongoing Calls.. /// Length of time that the Call was connected in seconds. Measures time between connectTime and endTime. This value is empty for busy, failed, unanswered or ongoing Calls.. + /// Length of time that the Call used the audio stream in seconds. This value is empty or zero when the Call did not use the audio stream.. /// direction. /// answeredBy. - /// The list of subresources for this Call. These include things like logs and recordings associated with the Call.. + /// The caller ID name (CNAM) for this Call. Empty if unavailable.. + /// Indicates whether this Call was initiated via WebRTC.. + /// subresourceUris. /// ApplicationId associated with the Call.. public CallResult( string uri = default(string), string dateCreated = default(string), string dateUpdated = default(string), int revision = default(int), + DateTime? dateCreatedISO = default(DateTime?), + DateTime? dateUpdatedISO = default(DateTime?), string callId = default(string), string parentCallId = default(string), string accountId = default(string), @@ -87,13 +97,20 @@ public CallResult( string phoneNumberId = default(string), CallStatus? status = default(CallStatus?), string startTime = default(string), + DateTime? startTimeISO = default(DateTime?), string connectTime = default(string), + DateTime? connectTimeISO = default(DateTime?), string endTime = default(string), + DateTime? endTimeISO = default(DateTime?), int? duration = default(int?), int? connectDuration = default(int?), + int? audioStreamDuration = default(int?), CallDirection? direction = default(CallDirection?), AnsweredBy? answeredBy = default(AnsweredBy?), - Object subresourceUris = default(Object), + string callerName = default(string), + bool? webRTC = default(bool?), + CallResultAllOfSubresourceUris subresourceUris = + default(CallResultAllOfSubresourceUris), string applicationId = default(string) ) { @@ -105,6 +122,10 @@ public CallResult( this.Revision = revision; + this.DateCreatedISO = dateCreatedISO; + + this.DateUpdatedISO = dateUpdatedISO; + this.CallId = callId; this.ParentCallId = parentCallId; @@ -121,18 +142,30 @@ public CallResult( this.StartTime = startTime; + this.StartTimeISO = startTimeISO; + this.ConnectTime = connectTime; + this.ConnectTimeISO = connectTimeISO; + this.EndTime = endTime; + this.EndTimeISO = endTimeISO; + this.Duration = duration; this.ConnectDuration = connectDuration; + this.AudioStreamDuration = audioStreamDuration; + this.Direction = direction; this.AnsweredBy = answeredBy; + this.CallerName = callerName; + + this.WebRTC = webRTC; + this.SubresourceUris = subresourceUris; this.ApplicationId = applicationId; @@ -166,6 +199,20 @@ public CallResult( [DataMember(Name = "revision", EmitDefaultValue = false)] public int Revision { get; set; } + /// + /// The date that this resource was created in ISO 8601 format (e.g., 2022-01-01T00:00:00.000Z). + /// + /// The date that this resource was created in ISO 8601 format (e.g., 2022-01-01T00:00:00.000Z). + [DataMember(Name = "dateCreatedISO", EmitDefaultValue = true)] + public DateTime? DateCreatedISO { get; set; } + + /// + /// The date that this resource was last updated in ISO 8601 format (e.g., 2022-01-01T00:00:00.000Z). + /// + /// The date that this resource was last updated in ISO 8601 format (e.g., 2022-01-01T00:00:00.000Z). + [DataMember(Name = "dateUpdatedISO", EmitDefaultValue = true)] + public DateTime? DateUpdatedISO { get; set; } + /// /// String that uniquely identifies this Call resource. /// @@ -215,6 +262,13 @@ public CallResult( [DataMember(Name = "startTime", EmitDefaultValue = true)] public string StartTime { get; set; } + /// + /// Start time of the Call in ISO 8601 format (e.g., 2022-01-01T00:00:00.000Z). Empty if the Call has not yet been dialed. + /// + /// Start time of the Call in ISO 8601 format (e.g., 2022-01-01T00:00:00.000Z). Empty if the Call has not yet been dialed. + [DataMember(Name = "startTimeISO", EmitDefaultValue = true)] + public DateTime? StartTimeISO { get; set; } + /// /// Time the Call was answered (GMT) in RFC 1123 format (e.g., Mon, 15 Jun 2009 20:45:30 GMT). Empty if the Call has not yet been dialed. /// @@ -222,6 +276,13 @@ public CallResult( [DataMember(Name = "connectTime", EmitDefaultValue = true)] public string ConnectTime { get; set; } + /// + /// Time the Call was answered in ISO 8601 format (e.g., 2022-01-01T00:00:00.000Z). Empty if the Call has not yet been dialed. + /// + /// Time the Call was answered in ISO 8601 format (e.g., 2022-01-01T00:00:00.000Z). Empty if the Call has not yet been dialed. + [DataMember(Name = "connectTimeISO", EmitDefaultValue = true)] + public DateTime? ConnectTimeISO { get; set; } + /// /// End time of the Call (GMT) in RFC 1123 format (e.g., Mon, 15 Jun 2009 20:45:30 GMT). Empty if the Call did not complete successfully. /// @@ -229,6 +290,13 @@ public CallResult( [DataMember(Name = "endTime", EmitDefaultValue = true)] public string EndTime { get; set; } + /// + /// End time of the Call in ISO 8601 format (e.g., 2022-01-01T00:00:00.000Z). Empty if the Call did not complete successfully. + /// + /// End time of the Call in ISO 8601 format (e.g., 2022-01-01T00:00:00.000Z). Empty if the Call did not complete successfully. + [DataMember(Name = "endTimeISO", EmitDefaultValue = true)] + public DateTime? EndTimeISO { get; set; } + /// /// Total length of the Call in seconds. Measures time between startTime and endTime. This value is empty for busy, failed, unanswered or ongoing Calls. /// @@ -244,11 +312,31 @@ public CallResult( public int? ConnectDuration { get; set; } /// - /// The list of subresources for this Call. These include things like logs and recordings associated with the Call. + /// Length of time that the Call used the audio stream in seconds. This value is empty or zero when the Call did not use the audio stream. + /// + /// Length of time that the Call used the audio stream in seconds. This value is empty or zero when the Call did not use the audio stream. + [DataMember(Name = "audioStreamDuration", EmitDefaultValue = true)] + public int? AudioStreamDuration { get; set; } + + /// + /// The caller ID name (CNAM) for this Call. Empty if unavailable. + /// + /// The caller ID name (CNAM) for this Call. Empty if unavailable. + [DataMember(Name = "callerName", EmitDefaultValue = true)] + public string CallerName { get; set; } + + /// + /// Indicates whether this Call was initiated via WebRTC. + /// + /// Indicates whether this Call was initiated via WebRTC. + [DataMember(Name = "webRTC", EmitDefaultValue = true)] + public bool? WebRTC { get; set; } + + /// + /// Gets or Sets SubresourceUris /// - /// The list of subresources for this Call. These include things like logs and recordings associated with the Call. [DataMember(Name = "subresourceUris", EmitDefaultValue = true)] - public Object SubresourceUris { get; set; } + public CallResultAllOfSubresourceUris SubresourceUris { get; set; } /// /// ApplicationId associated with the Call. @@ -269,6 +357,8 @@ public override string ToString() sb.Append(" DateCreated: ").Append(DateCreated).Append("\n"); sb.Append(" DateUpdated: ").Append(DateUpdated).Append("\n"); sb.Append(" Revision: ").Append(Revision).Append("\n"); + sb.Append(" DateCreatedISO: ").Append(DateCreatedISO).Append("\n"); + sb.Append(" DateUpdatedISO: ").Append(DateUpdatedISO).Append("\n"); sb.Append(" CallId: ").Append(CallId).Append("\n"); sb.Append(" ParentCallId: ").Append(ParentCallId).Append("\n"); sb.Append(" AccountId: ").Append(AccountId).Append("\n"); @@ -277,12 +367,18 @@ public override string ToString() sb.Append(" PhoneNumberId: ").Append(PhoneNumberId).Append("\n"); sb.Append(" Status: ").Append(Status).Append("\n"); sb.Append(" StartTime: ").Append(StartTime).Append("\n"); + sb.Append(" StartTimeISO: ").Append(StartTimeISO).Append("\n"); sb.Append(" ConnectTime: ").Append(ConnectTime).Append("\n"); + sb.Append(" ConnectTimeISO: ").Append(ConnectTimeISO).Append("\n"); sb.Append(" EndTime: ").Append(EndTime).Append("\n"); + sb.Append(" EndTimeISO: ").Append(EndTimeISO).Append("\n"); sb.Append(" Duration: ").Append(Duration).Append("\n"); sb.Append(" ConnectDuration: ").Append(ConnectDuration).Append("\n"); + sb.Append(" AudioStreamDuration: ").Append(AudioStreamDuration).Append("\n"); sb.Append(" Direction: ").Append(Direction).Append("\n"); sb.Append(" AnsweredBy: ").Append(AnsweredBy).Append("\n"); + sb.Append(" CallerName: ").Append(CallerName).Append("\n"); + sb.Append(" WebRTC: ").Append(WebRTC).Append("\n"); sb.Append(" SubresourceUris: ").Append(SubresourceUris).Append("\n"); sb.Append(" ApplicationId: ").Append(ApplicationId).Append("\n"); sb.Append("}\n"); @@ -313,6 +409,8 @@ public virtual IDictionary ToKvp() AddToDictionary(props, "dateCreated", DateCreated); AddToDictionary(props, "dateUpdated", DateUpdated); AddToDictionary(props, "revision", Revision); + AddToDictionary(props, "dateCreatedISO", DateCreatedISO); + AddToDictionary(props, "dateUpdatedISO", DateUpdatedISO); AddToDictionary(props, "callId", CallId); AddToDictionary(props, "parentCallId", ParentCallId); AddToDictionary(props, "accountId", AccountId); @@ -321,12 +419,18 @@ public virtual IDictionary ToKvp() AddToDictionary(props, "phoneNumberId", PhoneNumberId); AddToDictionary(props, "status", Status); AddToDictionary(props, "startTime", StartTime); + AddToDictionary(props, "startTimeISO", StartTimeISO); AddToDictionary(props, "connectTime", ConnectTime); + AddToDictionary(props, "connectTimeISO", ConnectTimeISO); AddToDictionary(props, "endTime", EndTime); + AddToDictionary(props, "endTimeISO", EndTimeISO); AddToDictionary(props, "duration", Duration); AddToDictionary(props, "connectDuration", ConnectDuration); + AddToDictionary(props, "audioStreamDuration", AudioStreamDuration); AddToDictionary(props, "direction", Direction); AddToDictionary(props, "answeredBy", AnsweredBy); + AddToDictionary(props, "callerName", CallerName); + AddToDictionary(props, "webRTC", WebRTC); AddToDictionary(props, "subresourceUris", SubresourceUris); AddToDictionary(props, "applicationId", ApplicationId); return props; diff --git a/src/freeclimb/Model/CallResultAllOfSubresourceUris.cs b/src/freeclimb/Model/CallResultAllOfSubresourceUris.cs new file mode 100644 index 00000000..866b4e29 --- /dev/null +++ b/src/freeclimb/Model/CallResultAllOfSubresourceUris.cs @@ -0,0 +1,129 @@ +/* + * FreeClimb API + * + * FreeClimb is a cloud-based application programming interface (API) that puts the power of the Vail platform in your hands. FreeClimb simplifies the process of creating applications that can use a full range of telephony features without requiring specialized or on-site telephony equipment. Using the FreeClimb REST API to write applications is easy! You have the option to use the language of your choice or hit the API directly. Your application can execute a command by issuing a RESTful request to the FreeClimb API. The base URL to send HTTP requests to the FreeClimb REST API is: /apiserver. FreeClimb authenticates and processes your request. + * + * The version of the OpenAPI document: 1.0.0 + * Contact: support@freeclimb.com + * Generated by: https://github.com/openapitools/openapi-generator.git + */ + + +using System; +using System.Collections; +using System.Collections.Generic; +using System.Collections.ObjectModel; +using System.ComponentModel.DataAnnotations; +using System.IO; +using System.Linq; +using System.Runtime.Serialization; +using System.Text; +using System.Text.RegularExpressions; +using freeclimb.Enums; +using Newtonsoft.Json; +using Newtonsoft.Json.Converters; +using Newtonsoft.Json.Linq; +using OpenAPIDateConverter = freeclimb.Client.OpenAPIDateConverter; + +namespace freeclimb.Model +{ + /// + /// The list of subresources for this Call. These include things like logs and recordings associated with the Call. + /// + [DataContract(Name = "CallResultAllOfSubresourceUris")] + public partial class CallResultAllOfSubresourceUris : IValidatableObject + { + /// + /// Initializes a new instance of the class. + /// + /// The URI for the logs associated with this Call.. + /// The URI for the recordings associated with this Call.. + public CallResultAllOfSubresourceUris( + string logs = default(string), + string recordings = default(string) + ) + { + this.Logs = logs; + + this.Recordings = recordings; + } + + /// + /// The URI for the logs associated with this Call. + /// + /// The URI for the logs associated with this Call. + [DataMember(Name = "logs", EmitDefaultValue = false)] + public string Logs { get; set; } + + /// + /// The URI for the recordings associated with this Call. + /// + /// The URI for the recordings associated with this Call. + [DataMember(Name = "recordings", EmitDefaultValue = false)] + public string Recordings { get; set; } + + /// + /// Returns the string presentation of the object + /// + /// String presentation of the object + public override string ToString() + { + StringBuilder sb = new StringBuilder(); + sb.Append("class CallResultAllOfSubresourceUris {\n"); + sb.Append(" Logs: ").Append(Logs).Append("\n"); + sb.Append(" Recordings: ").Append(Recordings).Append("\n"); + sb.Append("}\n"); + return sb.ToString(); + } + + /// + /// Returns the JSON string presentation of the object + /// + /// JSON string presentation of the object + public virtual string ToJson() + { + return Newtonsoft.Json.JsonConvert.SerializeObject( + this, + Newtonsoft.Json.Formatting.Indented, + new JsonSerializerSettings { NullValueHandling = NullValueHandling.Ignore } + ); + } + + /// + /// Retrieve the KVP Dictionary for the CallResultAllOfSubresourceUris instance. + /// + /// KVP Dictionary + public virtual IDictionary ToKvp() + { + IDictionary props = new Dictionary(); + AddToDictionary(props, "logs", Logs); + AddToDictionary(props, "recordings", Recordings); + return props; + } + + private IDictionary AddToDictionary( + IDictionary dict, + string key, + object value + ) + { + if (value != null) + { + dict.Add(key, value); + } + return dict; + } + + /// + /// To validate all properties of the instance + /// + /// Validation context + /// Validation Result + IEnumerable IValidatableObject.Validate( + ValidationContext validationContext + ) + { + yield break; + } + } +} diff --git a/src/freeclimb/Model/ConferenceResult.cs b/src/freeclimb/Model/ConferenceResult.cs index 4c1944b6..bc9f7c47 100644 --- a/src/freeclimb/Model/ConferenceResult.cs +++ b/src/freeclimb/Model/ConferenceResult.cs @@ -34,8 +34,9 @@ namespace freeclimb.Model public partial class ConferenceResult : IValidatableObject { /// - /// Gets or Sets PlayBeep + /// Setting that controls when a beep is played. One of: always, never, entryOnly, exitOnly. Defaults to always. /// + /// Setting that controls when a beep is played. One of: always, never, entryOnly, exitOnly. Defaults to always. [DataMember(Name = "playBeep", EmitDefaultValue = true)] public PlayBeep? PlayBeep { get; set; } @@ -55,7 +56,7 @@ public partial class ConferenceResult : IValidatableObject /// A string that uniquely identifies this Conference resource.. /// ID of the account that created this Conference.. /// A description for this Conference.. - /// playBeep. + /// Setting that controls when a beep is played. One of: always, never, entryOnly, exitOnly. Defaults to always.. /// Flag indicating whether recording is enabled for this Conference.. /// status. /// URL referencing the audio file to be used as default wait music for the Conference when it is in the populated state.. diff --git a/src/freeclimb/Model/IncomingNumberResult.cs b/src/freeclimb/Model/IncomingNumberResult.cs index a0141c11..9dcb0af7 100644 --- a/src/freeclimb/Model/IncomingNumberResult.cs +++ b/src/freeclimb/Model/IncomingNumberResult.cs @@ -200,7 +200,7 @@ public IncomingNumberResult( /// /// Gets or Sets Tfn /// - [DataMember(Name = "tfn", EmitDefaultValue = false)] + [DataMember(Name = "tfn", EmitDefaultValue = true)] public TFN Tfn { get; set; } /// diff --git a/src/freeclimb/Model/MessageResult.cs b/src/freeclimb/Model/MessageResult.cs index 79b377b0..244f40d3 100644 --- a/src/freeclimb/Model/MessageResult.cs +++ b/src/freeclimb/Model/MessageResult.cs @@ -230,7 +230,7 @@ public MessageResult( /// /// Gets or Sets Tfn /// - [DataMember(Name = "tfn", EmitDefaultValue = false)] + [DataMember(Name = "tfn", EmitDefaultValue = true)] public TFN Tfn { get; set; } /// diff --git a/src/freeclimb/Model/PerclCommand.cs b/src/freeclimb/Model/PerclCommand.cs index a7bbe7ee..096334ce 100644 --- a/src/freeclimb/Model/PerclCommand.cs +++ b/src/freeclimb/Model/PerclCommand.cs @@ -34,6 +34,7 @@ namespace freeclimb.Model [DataContract(Name = "PerclCommand")] [JsonConverter(typeof(JsonSubtypes), "Command")] [JsonSubtypes.KnownSubType(typeof(AddToConference), "AddToConference")] + [JsonSubtypes.KnownSubType(typeof(AudioStream), "AudioStream")] [JsonSubtypes.KnownSubType(typeof(CreateConference), "CreateConference")] [JsonSubtypes.KnownSubType(typeof(Dequeue), "Dequeue")] [JsonSubtypes.KnownSubType(typeof(Enqueue), "Enqueue")] diff --git a/src/freeclimb/Model/QueueResult.cs b/src/freeclimb/Model/QueueResult.cs index 14cf7ee3..044625fd 100644 --- a/src/freeclimb/Model/QueueResult.cs +++ b/src/freeclimb/Model/QueueResult.cs @@ -46,6 +46,7 @@ public partial class QueueResult : IValidatableObject /// The maximum number of Calls permitted in the Queue. Default is 100. Maximum is 1000.. /// Count of Calls currently in the Queue.. /// The average amount of time (in seconds) for a call to be removed from the queue.. + /// The average wait time (in seconds) of all Calls in the Queue.. /// List of subresources for this Queue (which includes Queue members).. public QueueResult( string uri = default(string), @@ -58,6 +59,7 @@ public QueueResult( int? maxSize = default(int?), int? currentSize = default(int?), int? averageQueueRemovalTime = default(int?), + int? averageWaitTime = default(int?), Object subresourceUris = default(Object) ) { @@ -81,6 +83,8 @@ public QueueResult( this.AverageQueueRemovalTime = averageQueueRemovalTime; + this.AverageWaitTime = averageWaitTime; + this.SubresourceUris = subresourceUris; } @@ -154,6 +158,13 @@ public QueueResult( [DataMember(Name = "averageQueueRemovalTime", EmitDefaultValue = true)] public int? AverageQueueRemovalTime { get; set; } + /// + /// The average wait time (in seconds) of all Calls in the Queue. + /// + /// The average wait time (in seconds) of all Calls in the Queue. + [DataMember(Name = "averageWaitTime", EmitDefaultValue = true)] + public int? AverageWaitTime { get; set; } + /// /// List of subresources for this Queue (which includes Queue members). /// @@ -179,6 +190,7 @@ public override string ToString() sb.Append(" MaxSize: ").Append(MaxSize).Append("\n"); sb.Append(" CurrentSize: ").Append(CurrentSize).Append("\n"); sb.Append(" AverageQueueRemovalTime: ").Append(AverageQueueRemovalTime).Append("\n"); + sb.Append(" AverageWaitTime: ").Append(AverageWaitTime).Append("\n"); sb.Append(" SubresourceUris: ").Append(SubresourceUris).Append("\n"); sb.Append("}\n"); return sb.ToString(); @@ -214,6 +226,7 @@ public virtual IDictionary ToKvp() AddToDictionary(props, "maxSize", MaxSize); AddToDictionary(props, "currentSize", CurrentSize); AddToDictionary(props, "averageQueueRemovalTime", AverageQueueRemovalTime); + AddToDictionary(props, "averageWaitTime", AverageWaitTime); AddToDictionary(props, "subresourceUris", SubresourceUris); return props; } diff --git a/src/freeclimb/Model/Webhook.cs b/src/freeclimb/Model/Webhook.cs index 897dc91a..8711d8c2 100644 --- a/src/freeclimb/Model/Webhook.cs +++ b/src/freeclimb/Model/Webhook.cs @@ -38,6 +38,7 @@ namespace freeclimb.Model "addToConferenceNotification" )] [JsonSubtypes.KnownSubType(typeof(AddToQueueNotificationWebhook), "addToQueueNotification")] + [JsonSubtypes.KnownSubType(typeof(AudioStreamWebhook), "audioStream")] [JsonSubtypes.KnownSubType(typeof(CallControlWebhook), "callControl")] [JsonSubtypes.KnownSubType(typeof(CallStatusWebhook), "callStatus")] [JsonSubtypes.KnownSubType( diff --git a/src/freeclimb/freeclimb.csproj b/src/freeclimb/freeclimb.csproj index 7219a20a..735bb246 100644 --- a/src/freeclimb/freeclimb.csproj +++ b/src/freeclimb/freeclimb.csproj @@ -12,7 +12,7 @@ A library generated from a OpenAPI doc No Copyright freeclimb - 5.3.1 + 5.4.0 bin\$(Configuration)\$(TargetFramework)\freeclimb.xml https://github.com/freeclimbapi/csharp-sdk.git git diff --git a/yarn.lock b/yarn.lock index 8bb46550..7ae18ef5 100644 --- a/yarn.lock +++ b/yarn.lock @@ -528,6 +528,11 @@ fast-uri@^3.0.1: resolved "https://registry.yarnpkg.com/fast-uri/-/fast-uri-3.1.0.tgz#66eecff6c764c0df9b762e62ca7edcfb53b4edfa" integrity sha512-iPeeDKJSWf4IEOasVVrknXpaBV0IApz/gp7S2bb7Z4Lljbl2MGJRqInZiUrQwV16cpzw/D3S5j5Julj/gT52AA== +fast-xml-builder@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/fast-xml-builder/-/fast-xml-builder-1.0.0.tgz#a485d7e8381f1db983cf006f849d1066e2935241" + integrity sha512-fpZuDogrAgnyt9oDDz+5DBz0zgPdPZz6D4IR7iESxRXElrlGTRkHJ9eEt+SACRJwT0FNFrt71DFQIUFBJfX/uQ== + fast-xml-parser@^4.2.0: version "4.5.3" resolved "https://registry.yarnpkg.com/fast-xml-parser/-/fast-xml-parser-4.5.3.tgz#c54d6b35aa0f23dc1ea60b6c884340c006dc6efb" @@ -535,12 +540,13 @@ fast-xml-parser@^4.2.0: dependencies: strnum "^1.1.1" -fast-xml-parser@^5.2.5: - version "5.2.5" - resolved "https://registry.yarnpkg.com/fast-xml-parser/-/fast-xml-parser-5.2.5.tgz#4809fdfb1310494e341098c25cb1341a01a9144a" - integrity sha512-pfX9uG9Ki0yekDHx2SiuRIyFdyAr1kMIMitPvb0YBo8SUfKvia7w7FIyd/l6av85pFYRhZscS75MwMnbvY+hcQ== +fast-xml-parser@^5.3.8: + version "5.4.2" + resolved "https://registry.yarnpkg.com/fast-xml-parser/-/fast-xml-parser-5.4.2.tgz#7fc66463b59260b0c5fd57edf46148a418bde68b" + integrity sha512-pw/6pIl4k0CSpElPEJhDppLzaixDEuWui2CUQQBH/ECDf7+y6YwA4Gf7Tyb0Rfe4DIMuZipYj4AEL0nACKglvQ== dependencies: - strnum "^2.1.0" + fast-xml-builder "^1.0.0" + strnum "^2.1.2" fastestsmallesttextencoderdecoder@^1.0.22: version "1.0.22" @@ -1127,10 +1133,10 @@ strnum@^1.1.1: resolved "https://registry.yarnpkg.com/strnum/-/strnum-1.1.2.tgz#57bca4fbaa6f271081715dbc9ed7cee5493e28e4" integrity sha512-vrN+B7DBIoTTZjnPNewwhx6cBA/H+IS7rfW68n7XxC1y7uoiGQBxaKzqucGUgavX15dJgiGztLJ8vxuEzwqBdA== -strnum@^2.1.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/strnum/-/strnum-2.1.1.tgz#cf2a6e0cf903728b8b2c4b971b7e36b4e82d46ab" - integrity sha512-7ZvoFTiCnGxBtDqJ//Cu6fWtZtc7Y3x+QOirG15wztbdngGSkht27o2pyGWrVy0b4WAy3jbKmnoK6g5VlVNUUw== +strnum@^2.1.2: + version "2.2.0" + resolved "https://registry.yarnpkg.com/strnum/-/strnum-2.2.0.tgz#8b582b637e4621f62ff714493e0ce30846f903a6" + integrity sha512-Y7Bj8XyJxnPAORMZj/xltsfo55uOiyHcU2tnAVzHUnSJR/KsEX+9RoDeXEnsXtl/CX4fAcrt64gZ13aGaWPeBg== supports-color@^5.3.0: version "5.5.0"