diff --git a/.openapi-generator/FILES b/.openapi-generator/FILES index 2b0b0aee..6e81ef6c 100644 --- a/.openapi-generator/FILES +++ b/.openapi-generator/FILES @@ -24,6 +24,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 @@ -183,6 +184,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 @@ -358,6 +360,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..ad310228 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.3.2] - 2026-03-04 + +### 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..717e9eb2 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.3.2 - 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/) @@ -216,6 +216,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..0dd29c65 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: @@ -7043,6 +7116,7 @@ components: shortCode: true phoneNumber: phoneNumber campaignId: campaignId + alias: alias region: region properties: capabilities: @@ -7056,6 +7130,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 +7169,7 @@ components: shortCode: true phoneNumber: phoneNumber campaignId: campaignId + alias: alias region: region - country: country capabilities: @@ -7101,6 +7180,7 @@ components: shortCode: true phoneNumber: phoneNumber campaignId: campaignId + alias: alias region: region start: 6 pageSize: 2 @@ -7283,10 +7363,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 +7430,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 +7474,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 +7653,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 @@ -8299,6 +8473,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 +8485,7 @@ components: queueId: queueId dateCreated: dateCreated averageQueueRemovalTime: 5 + averageWaitTime: 5 subresourceUris: null alias: alias maxSize: 6 @@ -8352,6 +8531,7 @@ components: queueId: queueId dateCreated: dateCreated averageQueueRemovalTime: 5 + averageWaitTime: 5 subresourceUris: null alias: alias maxSize: 6 @@ -8363,6 +8543,7 @@ components: queueId: queueId dateCreated: dateCreated averageQueueRemovalTime: 5 + averageWaitTime: 5 subresourceUris: null alias: alias maxSize: 6 @@ -9963,12 +10144,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/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/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/freeclimb.sln b/freeclimb.sln index 9810ef27..6212a027 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", "{6217D050-306F-4A08-A26C-743777A3B1CB}" 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 + {6217D050-306F-4A08-A26C-743777A3B1CB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {6217D050-306F-4A08-A26C-743777A3B1CB}.Debug|Any CPU.Build.0 = Debug|Any CPU + {6217D050-306F-4A08-A26C-743777A3B1CB}.Release|Any CPU.ActiveCfg = Release|Any CPU + {6217D050-306F-4A08-A26C-743777A3B1CB}.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/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/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/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..44bb038d 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.3.2"; /// /// 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.3.2/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.3.2\n"; return report; } 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/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/freeclimb.csproj b/src/freeclimb/freeclimb.csproj index 7219a20a..8e21c92a 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.3.2 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"